diff options
| author | Son Ho | 2023-05-12 20:17:26 +0200 |
|---|---|---|
| committer | Son HO | 2023-06-04 21:54:38 +0200 |
| commit | 8a5c5e4ae0cab0ab627c25ece59453a8e4bd4b64 (patch) | |
| tree | 2e92885f457b610d183cf2e7f18fd05c5219ba60 /backends/hol4/testDivDefTheory.sig | |
| parent | c49fd4b6230a1f926e929f133794b6f73d338077 (diff) | |
Cleanup the files of the HOL4 backend
Diffstat (limited to 'backends/hol4/testDivDefTheory.sig')
| -rw-r--r-- | backends/hol4/testDivDefTheory.sig | 380 |
1 files changed, 0 insertions, 380 deletions
diff --git a/backends/hol4/testDivDefTheory.sig b/backends/hol4/testDivDefTheory.sig deleted file mode 100644 index a3ce2255..00000000 --- a/backends/hol4/testDivDefTheory.sig +++ /dev/null @@ -1,380 +0,0 @@ -signature testDivDefTheory = -sig - type thm = Thm.thm - - (* Definitions *) - val even___E_def : thm - val even___P_def : thm - val even___fuel0_def_UNION_extract0 : thm - val even___fuel0_def_UNION_extract1 : thm - val even___fuel0_def_UNION_primitive : thm - val even___fuel_def_UNION_extract0 : thm - val even___fuel_def_UNION_extract1 : thm - val even___fuel_def_UNION_primitive : thm - val even_def : thm - val list_t_TY_DEF : thm - val list_t_case_def : thm - val list_t_size_def : thm - val nth_mut_fwd___E_def : thm - val nth_mut_fwd___P_def : thm - val nth_mut_fwd_def : thm - val odd___E_def : thm - val odd___P_def : thm - val odd_def : thm - - (* Theorems *) - val datatype_list_t : thm - val even___fuel0_def : thm - val even___fuel0_ind : thm - val even___fuel_def : thm - val even___fuel_ind : thm - val list_t_11 : thm - val list_t_Axiom : thm - val list_t_case_cong : thm - val list_t_case_eq : thm - val list_t_distinct : thm - val list_t_induction : thm - val list_t_nchotomy : thm - val nth_mut_fwd___fuel0_def : thm - val nth_mut_fwd___fuel0_ind : thm - val nth_mut_fwd___fuel_def : thm - val nth_mut_fwd___fuel_ind : thm - - val testDivDef_grammars : type_grammar.grammar * term_grammar.grammar -(* - [primitives] Parent theory of "testDivDef" - - [even___E_def] Definition - - ⊢ ∀even odd i. - even___E even odd i = - if i = 0 then do b <- Return T; Return b od - else do b <- odd (i − 1); Return b od - - [even___P_def] Definition - - ⊢ ∀i $var$($n). - even___P i $var$($n) ⇔ ¬is_diverge (even___fuel0 $var$($n) i) - - [even___fuel0_def_UNION_extract0] Definition - - ⊢ ∀x x0. even___fuel0 x x0 = even___fuel0_def_UNION (INL (x,x0)) - - [even___fuel0_def_UNION_extract1] Definition - - ⊢ ∀x x0. odd___fuel0 x x0 = even___fuel0_def_UNION (INR (x,x0)) - - [even___fuel0_def_UNION_primitive] Definition - - ⊢ even___fuel0_def_UNION = - WFREC - (@R. WF R ∧ - (∀i $var$($n) $var$($m). - $var$($n) = SUC $var$($m) ∧ i ≠ 0 ⇒ - R (INR ($var$($m),i − 1)) (INL ($var$($n),i))) ∧ - ∀i $var$($n) $var$($m). - $var$($n) = SUC $var$($m) ∧ i ≠ 0 ⇒ - R (INL ($var$($m),i − 1)) (INR ($var$($n),i))) - (λeven___fuel0_def_UNION a. - case a of - INL ($var$($n),i) => - I - (case $var$($n) of - 0 => Diverge - | SUC $var$($m) => - if i = 0 then do b <- Return T; Return b od - else - do - b <- - even___fuel0_def_UNION - (INR ($var$($m),i − 1)); - Return b - od) - | INR ($var$($n'),i') => - I - (case $var$($n') of - 0 => Diverge - | SUC $var$($m) => - if i' = 0 then do b <- Return F; Return b od - else - do - b <- - even___fuel0_def_UNION (INL ($var$($m),i' − 1)); - Return b - od)) - - [even___fuel_def_UNION_extract0] Definition - - ⊢ ∀x x0. even___fuel x x0 = even___fuel_def_UNION (INL (x,x0)) - - [even___fuel_def_UNION_extract1] Definition - - ⊢ ∀x x0. odd___fuel x x0 = even___fuel_def_UNION (INR (x,x0)) - - [even___fuel_def_UNION_primitive] Definition - - ⊢ even___fuel_def_UNION = - WFREC - (@R. WF R ∧ - (∀i $var$($n) $var$($m). - $var$($n) = SUC $var$($m) ∧ i ≠ 0 ⇒ - R (INR ($var$($m),i − 1)) (INL ($var$($n),i))) ∧ - ∀i $var$($n) $var$($m). - $var$($n) = SUC $var$($m) ∧ i ≠ 0 ⇒ - R (INL ($var$($m),i − 1)) (INR ($var$($n),i))) - (λeven___fuel_def_UNION a. - case a of - INL ($var$($n),i) => - I - (case $var$($n) of - 0 => Diverge - | SUC $var$($m) => - if i = 0 then Return T - else even___fuel_def_UNION (INR ($var$($m),i − 1))) - | INR ($var$($n'),i') => - I - (case $var$($n') of - 0 => Diverge - | SUC $var$($m) => - if i' = 0 then Return F - else even___fuel_def_UNION (INL ($var$($m),i' − 1)))) - - [even_def] Definition - - ⊢ ∀i. even i = - if ∃ $var$($n). even___P i $var$($n) then - even___fuel0 ($LEAST (even___P i)) i - else Diverge - - [list_t_TY_DEF] Definition - - ⊢ ∃rep. - TYPE_DEFINITION - (λa0'. - ∀ $var$('list_t'). - (∀a0'. - (∃a0 a1. - a0' = - (λa0 a1. - ind_type$CONSTR 0 a0 - (ind_type$FCONS a1 (λn. ind_type$BOTTOM))) - a0 a1 ∧ $var$('list_t') a1) ∨ - a0' = - ind_type$CONSTR (SUC 0) ARB (λn. ind_type$BOTTOM) ⇒ - $var$('list_t') a0') ⇒ - $var$('list_t') a0') rep - - [list_t_case_def] Definition - - ⊢ (∀a0 a1 f v. list_t_CASE (ListCons a0 a1) f v = f a0 a1) ∧ - ∀f v. list_t_CASE ListNil f v = v - - [list_t_size_def] Definition - - ⊢ (∀f a0 a1. - list_t_size f (ListCons a0 a1) = 1 + (f a0 + list_t_size f a1)) ∧ - ∀f. list_t_size f ListNil = 0 - - [nth_mut_fwd___E_def] Definition - - ⊢ ∀nth_mut_fwd ls i. - nth_mut_fwd___E nth_mut_fwd ls i = - case ls of - ListCons x tl => - if u32_to_int i = 0 then Return x - else - do - i0 <- u32_sub i (int_to_u32 1); - x <- nth_mut_fwd tl i0; - Return x - od - | ListNil => Fail Failure - - [nth_mut_fwd___P_def] Definition - - ⊢ ∀ls i $var$($n). - nth_mut_fwd___P ls i $var$($n) ⇔ - ¬is_diverge (nth_mut_fwd___fuel0 $var$($n) ls i) - - [nth_mut_fwd_def] Definition - - ⊢ ∀ls i. - nth_mut_fwd ls i = - if ∃ $var$($n). nth_mut_fwd___P ls i $var$($n) then - nth_mut_fwd___fuel0 ($LEAST (nth_mut_fwd___P ls i)) ls i - else Diverge - - [odd___E_def] Definition - - ⊢ ∀even odd i. - odd___E even odd i = - if i = 0 then do b <- Return F; Return b od - else do b <- even (i − 1); Return b od - - [odd___P_def] Definition - - ⊢ ∀i $var$($n). - odd___P i $var$($n) ⇔ ¬is_diverge (odd___fuel0 $var$($n) i) - - [odd_def] Definition - - ⊢ ∀i. odd i = - if ∃ $var$($n). odd___P i $var$($n) then - odd___fuel0 ($LEAST (odd___P i)) i - else Diverge - - [datatype_list_t] Theorem - - ⊢ DATATYPE (list_t ListCons ListNil) - - [even___fuel0_def] Theorem - - ⊢ (∀i $var$($n). - even___fuel0 $var$($n) i = - case $var$($n) of - 0 => Diverge - | SUC $var$($m) => - if i = 0 then do b <- Return T; Return b od - else do b <- odd___fuel0 $var$($m) (i − 1); Return b od) ∧ - ∀i $var$($n). - odd___fuel0 $var$($n) i = - case $var$($n) of - 0 => Diverge - | SUC $var$($m) => - if i = 0 then do b <- Return F; Return b od - else do b <- even___fuel0 $var$($m) (i − 1); Return b od - - [even___fuel0_ind] Theorem - - ⊢ ∀P0 P1. - (∀ $var$($n) i. - (∀ $var$($m). - $var$($n) = SUC $var$($m) ∧ i ≠ 0 ⇒ P1 $var$($m) (i − 1)) ⇒ - P0 $var$($n) i) ∧ - (∀ $var$($n) i. - (∀ $var$($m). - $var$($n) = SUC $var$($m) ∧ i ≠ 0 ⇒ P0 $var$($m) (i − 1)) ⇒ - P1 $var$($n) i) ⇒ - (∀v0 v1. P0 v0 v1) ∧ ∀v0 v1. P1 v0 v1 - - [even___fuel_def] Theorem - - ⊢ (∀i $var$($n). - even___fuel $var$($n) i = - case $var$($n) of - 0 => Diverge - | SUC $var$($m) => - if i = 0 then Return T else odd___fuel $var$($m) (i − 1)) ∧ - ∀i $var$($n). - odd___fuel $var$($n) i = - case $var$($n) of - 0 => Diverge - | SUC $var$($m) => - if i = 0 then Return F else even___fuel $var$($m) (i − 1) - - [even___fuel_ind] Theorem - - ⊢ ∀P0 P1. - (∀ $var$($n) i. - (∀ $var$($m). - $var$($n) = SUC $var$($m) ∧ i ≠ 0 ⇒ P1 $var$($m) (i − 1)) ⇒ - P0 $var$($n) i) ∧ - (∀ $var$($n) i. - (∀ $var$($m). - $var$($n) = SUC $var$($m) ∧ i ≠ 0 ⇒ P0 $var$($m) (i − 1)) ⇒ - P1 $var$($n) i) ⇒ - (∀v0 v1. P0 v0 v1) ∧ ∀v0 v1. P1 v0 v1 - - [list_t_11] Theorem - - ⊢ ∀a0 a1 a0' a1'. - ListCons a0 a1 = ListCons a0' a1' ⇔ a0 = a0' ∧ a1 = a1' - - [list_t_Axiom] Theorem - - ⊢ ∀f0 f1. ∃fn. - (∀a0 a1. fn (ListCons a0 a1) = f0 a0 a1 (fn a1)) ∧ - fn ListNil = f1 - - [list_t_case_cong] Theorem - - ⊢ ∀M M' f v. - M = M' ∧ (∀a0 a1. M' = ListCons a0 a1 ⇒ f a0 a1 = f' a0 a1) ∧ - (M' = ListNil ⇒ v = v') ⇒ - list_t_CASE M f v = list_t_CASE M' f' v' - - [list_t_case_eq] Theorem - - ⊢ list_t_CASE x f v = v' ⇔ - (∃t l. x = ListCons t l ∧ f t l = v') ∨ x = ListNil ∧ v = v' - - [list_t_distinct] Theorem - - ⊢ ∀a1 a0. ListCons a0 a1 ≠ ListNil - - [list_t_induction] Theorem - - ⊢ ∀P. (∀l. P l ⇒ ∀t. P (ListCons t l)) ∧ P ListNil ⇒ ∀l. P l - - [list_t_nchotomy] Theorem - - ⊢ ∀ll. (∃t l. ll = ListCons t l) ∨ ll = ListNil - - [nth_mut_fwd___fuel0_def] Theorem - - ⊢ ∀ls i $var$($n). - nth_mut_fwd___fuel0 $var$($n) ls i = - case $var$($n) of - 0 => Diverge - | SUC $var$($m) => - case ls of - ListCons x tl => - if u32_to_int i = 0 then Return x - else - do - i0 <- u32_sub i (int_to_u32 1); - x <- nth_mut_fwd___fuel0 $var$($m) tl i0; - Return x - od - | ListNil => Fail Failure - - [nth_mut_fwd___fuel0_ind] Theorem - - ⊢ ∀P. (∀ $var$($n) ls i. - (∀ $var$($m) x tl i0. - $var$($n) = SUC $var$($m) ∧ ls = ListCons x tl ∧ - u32_to_int i ≠ 0 ⇒ - P $var$($m) tl i0) ⇒ - P $var$($n) ls i) ⇒ - ∀v v1 v2. P v v1 v2 - - [nth_mut_fwd___fuel_def] Theorem - - ⊢ ∀ls i $var$($n). - nth_mut_fwd___fuel $var$($n) ls i = - case $var$($n) of - 0 => Diverge - | SUC $var$($m) => - case ls of - ListCons x tl => - if u32_to_int i = 0 then Return x - else - do - i0 <- u32_sub i (int_to_u32 1); - nth_mut_fwd___fuel $var$($m) tl i0 - od - | ListNil => Fail Failure - - [nth_mut_fwd___fuel_ind] Theorem - - ⊢ ∀P. (∀ $var$($n) ls i. - (∀ $var$($m) x tl i0. - $var$($n) = SUC $var$($m) ∧ ls = ListCons x tl ∧ - u32_to_int i ≠ 0 ⇒ - P $var$($m) tl i0) ⇒ - P $var$($n) ls i) ⇒ - ∀v v1 v2. P v v1 v2 - - -*) -end |
