- deep_form_TY_DEF
-
|- ?rep.
TYPE_DEFINITION
(\a0'.
!'deep_form'.
(!a0'.
(?a0 a1.
(a0' =
(\a0 a1.
CONSTR 0 ((@v. T),(@v. T),@v. T)
(FCONS a0 (FCONS a1 (\n. BOTTOM)))) a0 a1) /\
'deep_form' a0 /\ 'deep_form' a1) \/
(?a0 a1.
(a0' =
(\a0 a1.
CONSTR (SUC 0) ((@v. T),(@v. T),@v. T)
(FCONS a0 (FCONS a1 (\n. BOTTOM)))) a0 a1) /\
'deep_form' a0 /\ 'deep_form' a1) \/
(?a.
(a0' =
(\a.
CONSTR (SUC (SUC 0)) ((@v. T),(@v. T),@v. T)
(FCONS a (\n. BOTTOM))) a) /\ 'deep_form' a) \/
(?a.
a0' =
(\a.
CONSTR (SUC (SUC (SUC 0))) (a,(@v. T),@v. T)
(\n. BOTTOM)) a) \/
(?a.
a0' =
(\a.
CONSTR (SUC (SUC (SUC (SUC 0)))) ((@v. T),a,@v. T)
(\n. BOTTOM)) a) \/
(?a.
a0' =
(\a.
CONSTR (SUC (SUC (SUC (SUC (SUC 0))))) ((@v. T),a,@v. T)
(\n. BOTTOM)) a) \/
(?a.
a0' =
(\a.
CONSTR (SUC (SUC (SUC (SUC (SUC (SUC 0))))))
((@v. T),a,@v. T) (\n. BOTTOM)) a) \/
(?a0 a1.
a0' =
(\a0 a1.
CONSTR (SUC (SUC (SUC (SUC (SUC (SUC (SUC 0)))))))
((@v. T),a0,a1) (\n. BOTTOM)) a0 a1) ==>
'deep_form' a0') ==>
'deep_form' a0') rep
- deep_form_repfns
-
|- (!a. mk_deep_form (dest_deep_form a) = a) /\
!r.
(\a0'.
!'deep_form'.
(!a0'.
(?a0 a1.
(a0' =
(\a0 a1.
CONSTR 0 ((@v. T),(@v. T),@v. T)
(FCONS a0 (FCONS a1 (\n. BOTTOM)))) a0 a1) /\
'deep_form' a0 /\ 'deep_form' a1) \/
(?a0 a1.
(a0' =
(\a0 a1.
CONSTR (SUC 0) ((@v. T),(@v. T),@v. T)
(FCONS a0 (FCONS a1 (\n. BOTTOM)))) a0 a1) /\
'deep_form' a0 /\ 'deep_form' a1) \/
(?a.
(a0' =
(\a.
CONSTR (SUC (SUC 0)) ((@v. T),(@v. T),@v. T)
(FCONS a (\n. BOTTOM))) a) /\ 'deep_form' a) \/
(?a.
a0' =
(\a.
CONSTR (SUC (SUC (SUC 0))) (a,(@v. T),@v. T) (\n. BOTTOM))
a) \/
(?a.
a0' =
(\a.
CONSTR (SUC (SUC (SUC (SUC 0)))) ((@v. T),a,@v. T)
(\n. BOTTOM)) a) \/
(?a.
a0' =
(\a.
CONSTR (SUC (SUC (SUC (SUC (SUC 0))))) ((@v. T),a,@v. T)
(\n. BOTTOM)) a) \/
(?a.
a0' =
(\a.
CONSTR (SUC (SUC (SUC (SUC (SUC (SUC 0))))))
((@v. T),a,@v. T) (\n. BOTTOM)) a) \/
(?a0 a1.
a0' =
(\a0 a1.
CONSTR (SUC (SUC (SUC (SUC (SUC (SUC (SUC 0)))))))
((@v. T),a0,a1) (\n. BOTTOM)) a0 a1) ==>
'deep_form' a0') ==>
'deep_form' a0') r =
(dest_deep_form (mk_deep_form r) = r)
- DeepSyntax0_def
-
|- DeepSyntax0 =
(\a0 a1.
mk_deep_form
((\a0 a1.
CONSTR 0 ((@v. T),(@v. T),@v. T)
(FCONS a0 (FCONS a1 (\n. BOTTOM)))) (dest_deep_form a0)
(dest_deep_form a1)))
- DeepSyntax1_def
-
|- DeepSyntax1 =
(\a0 a1.
mk_deep_form
((\a0 a1.
CONSTR (SUC 0) ((@v. T),(@v. T),@v. T)
(FCONS a0 (FCONS a1 (\n. BOTTOM)))) (dest_deep_form a0)
(dest_deep_form a1)))
- DeepSyntax2_def
-
|- DeepSyntax2 =
(\a.
mk_deep_form
((\a.
CONSTR (SUC (SUC 0)) ((@v. T),(@v. T),@v. T)
(FCONS a (\n. BOTTOM))) (dest_deep_form a)))
- DeepSyntax3_def
-
|- DeepSyntax3 =
(\a.
mk_deep_form
((\a. CONSTR (SUC (SUC (SUC 0))) (a,(@v. T),@v. T) (\n. BOTTOM)) a))
- DeepSyntax4_def
-
|- DeepSyntax4 =
(\a.
mk_deep_form
((\a. CONSTR (SUC (SUC (SUC (SUC 0)))) ((@v. T),a,@v. T) (\n. BOTTOM))
a))
- DeepSyntax5_def
-
|- DeepSyntax5 =
(\a.
mk_deep_form
((\a.
CONSTR (SUC (SUC (SUC (SUC (SUC 0))))) ((@v. T),a,@v. T)
(\n. BOTTOM)) a))
- DeepSyntax6_def
-
|- DeepSyntax6 =
(\a.
mk_deep_form
((\a.
CONSTR (SUC (SUC (SUC (SUC (SUC (SUC 0)))))) ((@v. T),a,@v. T)
(\n. BOTTOM)) a))
- DeepSyntax7_def
-
|- DeepSyntax7 =
(\a0 a1.
mk_deep_form
((\a0 a1.
CONSTR (SUC (SUC (SUC (SUC (SUC (SUC (SUC 0))))))) ((@v. T),a0,a1)
(\n. BOTTOM)) a0 a1))
- Conjn
-
|- Conjn = DeepSyntax0
- Disjn
-
|- Disjn = DeepSyntax1
- Negn
-
|- Negn = DeepSyntax2
- UnrelatedBool
-
|- UnrelatedBool = DeepSyntax3
- xLT
-
|- xLT = DeepSyntax4
- LTx
-
|- LTx = DeepSyntax5
- xEQ
-
|- xEQ = DeepSyntax6
- xDivided
-
|- xDivided = DeepSyntax7
- deep_form_case_def
-
|- (!f f1 f2 f3 f4 f5 f6 f7 a0 a1.
case f f1 f2 f3 f4 f5 f6 f7 (Conjn a0 a1) = f a0 a1) /\
(!f f1 f2 f3 f4 f5 f6 f7 a0 a1.
case f f1 f2 f3 f4 f5 f6 f7 (Disjn a0 a1) = f1 a0 a1) /\
(!f f1 f2 f3 f4 f5 f6 f7 a. case f f1 f2 f3 f4 f5 f6 f7 (Negn a) = f2 a) /\
(!f f1 f2 f3 f4 f5 f6 f7 a.
case f f1 f2 f3 f4 f5 f6 f7 (UnrelatedBool a) = f3 a) /\
(!f f1 f2 f3 f4 f5 f6 f7 a. case f f1 f2 f3 f4 f5 f6 f7 (xLT a) = f4 a) /\
(!f f1 f2 f3 f4 f5 f6 f7 a. case f f1 f2 f3 f4 f5 f6 f7 (LTx a) = f5 a) /\
(!f f1 f2 f3 f4 f5 f6 f7 a. case f f1 f2 f3 f4 f5 f6 f7 (xEQ a) = f6 a) /\
!f f1 f2 f3 f4 f5 f6 f7 a0 a1.
case f f1 f2 f3 f4 f5 f6 f7 (xDivided a0 a1) = f7 a0 a1
- deep_form_size_def
-
|- (!a0 a1.
deep_form_size (Conjn a0 a1) =
1 + (deep_form_size a0 + deep_form_size a1)) /\
(!a0 a1.
deep_form_size (Disjn a0 a1) =
1 + (deep_form_size a0 + deep_form_size a1)) /\
(!a. deep_form_size (Negn a) = 1 + deep_form_size a) /\
(!a. deep_form_size (UnrelatedBool a) = 1 + case a of T -> 0 || F -> 0) /\
(!a. deep_form_size (xLT a) = 1) /\ (!a. deep_form_size (LTx a) = 1) /\
(!a. deep_form_size (xEQ a) = 1) /\
!a0 a1. deep_form_size (xDivided a0 a1) = 1
- eval_form_def
-
|- (!f1 f2 x. eval_form (Conjn f1 f2) x = eval_form f1 x /\ eval_form f2 x) /\
(!f1 f2 x. eval_form (Disjn f1 f2) x = eval_form f1 x \/ eval_form f2 x) /\
(!f x. eval_form (Negn f) x = ~eval_form f x) /\
(!b x. eval_form (UnrelatedBool b) x = b) /\
(!i x. eval_form (xLT i) x = x < i) /\
(!i x. eval_form (LTx i) x = i < x) /\
(!i x. eval_form (xEQ i) x = (x = i)) /\
!i1 i2 x. eval_form (xDivided i1 i2) x = i1 int_divides x + i2
- neginf_def
-
|- (!f1 f2. neginf (Conjn f1 f2) = Conjn (neginf f1) (neginf f2)) /\
(!f1 f2. neginf (Disjn f1 f2) = Disjn (neginf f1) (neginf f2)) /\
(!f. neginf (Negn f) = Negn (neginf f)) /\
(!b. neginf (UnrelatedBool b) = UnrelatedBool b) /\
(!i. neginf (xLT i) = UnrelatedBool T) /\
(!i. neginf (LTx i) = UnrelatedBool F) /\
(!i. neginf (xEQ i) = UnrelatedBool F) /\
!i1 i2. neginf (xDivided i1 i2) = xDivided i1 i2
- posinf_def
-
|- (!f1 f2. posinf (Conjn f1 f2) = Conjn (posinf f1) (posinf f2)) /\
(!f1 f2. posinf (Disjn f1 f2) = Disjn (posinf f1) (posinf f2)) /\
(!f. posinf (Negn f) = Negn (posinf f)) /\
(!b. posinf (UnrelatedBool b) = UnrelatedBool b) /\
(!i. posinf (xLT i) = UnrelatedBool F) /\
(!i. posinf (LTx i) = UnrelatedBool T) /\
(!i. posinf (xEQ i) = UnrelatedBool F) /\
!i1 i2. posinf (xDivided i1 i2) = xDivided i1 i2
- alldivide_def
-
|- (!f1 f2 d. alldivide (Conjn f1 f2) d = alldivide f1 d /\ alldivide f2 d) /\
(!f1 f2 d. alldivide (Disjn f1 f2) d = alldivide f1 d /\ alldivide f2 d) /\
(!f d. alldivide (Negn f) d = alldivide f d) /\
(!b d. alldivide (UnrelatedBool b) d = T) /\
(!i d. alldivide (xLT i) d = T) /\ (!i d. alldivide (LTx i) d = T) /\
(!i d. alldivide (xEQ i) d = T) /\
!i1 i2 d. alldivide (xDivided i1 i2) d = i1 int_divides d
- Aset_def
-
|- (!pos f1 f2. Aset pos (Conjn f1 f2) = Aset pos f1 UNION Aset pos f2) /\
(!pos f1 f2. Aset pos (Disjn f1 f2) = Aset pos f1 UNION Aset pos f2) /\
(!pos f. Aset pos (Negn f) = Aset (~pos) f) /\
(!pos b. Aset pos (UnrelatedBool b) = {}) /\
(!pos i. Aset pos (xLT i) = (if pos then {i} else {})) /\
(!pos i. Aset pos (LTx i) = (if pos then {} else {i + 1})) /\
(!pos i. Aset pos (xEQ i) = (if pos then {i + 1} else {i})) /\
!pos i1 i2. Aset pos (xDivided i1 i2) = {}
- Bset_def
-
|- (!pos f1 f2. Bset pos (Conjn f1 f2) = Bset pos f1 UNION Bset pos f2) /\
(!pos f1 f2. Bset pos (Disjn f1 f2) = Bset pos f1 UNION Bset pos f2) /\
(!pos f. Bset pos (Negn f) = Bset (~pos) f) /\
(!pos b. Bset pos (UnrelatedBool b) = {}) /\
(!pos i. Bset pos (xLT i) = (if pos then {} else {i + ~1})) /\
(!pos i. Bset pos (LTx i) = (if pos then {i} else {})) /\
(!pos i. Bset pos (xEQ i) = (if pos then {i + ~1} else {i})) /\
!pos i1 i2. Bset pos (xDivided i1 i2) = {}
- deep_form_11
-
|- (!a0 a1 a0' a1'.
(Conjn a0 a1 = Conjn a0' a1') = (a0 = a0') /\ (a1 = a1')) /\
(!a0 a1 a0' a1'.
(Disjn a0 a1 = Disjn a0' a1') = (a0 = a0') /\ (a1 = a1')) /\
(!a a'. (Negn a = Negn a') = (a = a')) /\
(!a a'. (UnrelatedBool a = UnrelatedBool a') = (a = a')) /\
(!a a'. (xLT a = xLT a') = (a = a')) /\
(!a a'. (LTx a = LTx a') = (a = a')) /\
(!a a'. (xEQ a = xEQ a') = (a = a')) /\
!a0 a1 a0' a1'.
(xDivided a0 a1 = xDivided a0' a1') = (a0 = a0') /\ (a1 = a1')
- deep_form_distinct
-
|- (!a1' a1 a0' a0. ~(Conjn a0 a1 = Disjn a0' a1')) /\
(!a1 a0 a. ~(Conjn a0 a1 = Negn a)) /\
(!a1 a0 a. ~(Conjn a0 a1 = UnrelatedBool a)) /\
(!a1 a0 a. ~(Conjn a0 a1 = xLT a)) /\ (!a1 a0 a. ~(Conjn a0 a1 = LTx a)) /\
(!a1 a0 a. ~(Conjn a0 a1 = xEQ a)) /\
(!a1' a1 a0' a0. ~(Conjn a0 a1 = xDivided a0' a1')) /\
(!a1 a0 a. ~(Disjn a0 a1 = Negn a)) /\
(!a1 a0 a. ~(Disjn a0 a1 = UnrelatedBool a)) /\
(!a1 a0 a. ~(Disjn a0 a1 = xLT a)) /\ (!a1 a0 a. ~(Disjn a0 a1 = LTx a)) /\
(!a1 a0 a. ~(Disjn a0 a1 = xEQ a)) /\
(!a1' a1 a0' a0. ~(Disjn a0 a1 = xDivided a0' a1')) /\
(!a' a. ~(Negn a = UnrelatedBool a')) /\ (!a' a. ~(Negn a = xLT a')) /\
(!a' a. ~(Negn a = LTx a')) /\ (!a' a. ~(Negn a = xEQ a')) /\
(!a1 a0 a. ~(Negn a = xDivided a0 a1)) /\
(!a' a. ~(UnrelatedBool a = xLT a')) /\
(!a' a. ~(UnrelatedBool a = LTx a')) /\
(!a' a. ~(UnrelatedBool a = xEQ a')) /\
(!a1 a0 a. ~(UnrelatedBool a = xDivided a0 a1)) /\
(!a' a. ~(xLT a = LTx a')) /\ (!a' a. ~(xLT a = xEQ a')) /\
(!a1 a0 a. ~(xLT a = xDivided a0 a1)) /\ (!a' a. ~(LTx a = xEQ a')) /\
(!a1 a0 a. ~(LTx a = xDivided a0 a1)) /\
!a1 a0 a. ~(xEQ a = xDivided a0 a1)
- deep_form_case_cong
-
|- !M M' f f1 f2 f3 f4 f5 f6 f7.
(M = M') /\ (!a0 a1. (M' = Conjn a0 a1) ==> (f a0 a1 = f' a0 a1)) /\
(!a0 a1. (M' = Disjn a0 a1) ==> (f1 a0 a1 = f1' a0 a1)) /\
(!a. (M' = Negn a) ==> (f2 a = f2' a)) /\
(!a. (M' = UnrelatedBool a) ==> (f3 a = f3' a)) /\
(!a. (M' = xLT a) ==> (f4 a = f4' a)) /\
(!a. (M' = LTx a) ==> (f5 a = f5' a)) /\
(!a. (M' = xEQ a) ==> (f6 a = f6' a)) /\
(!a0 a1. (M' = xDivided a0 a1) ==> (f7 a0 a1 = f7' a0 a1)) ==>
(case f f1 f2 f3 f4 f5 f6 f7 M = case f' f1' f2' f3' f4' f5' f6' f7' M')
- deep_form_nchotomy
-
|- !d.
(?d' d0. d = Conjn d' d0) \/ (?d' d0. d = Disjn d' d0) \/
(?d'. d = Negn d') \/ (?b. d = UnrelatedBool b) \/ (?i. d = xLT i) \/
(?i. d = LTx i) \/ (?i. d = xEQ i) \/ ?i i0. d = xDivided i i0
- deep_form_Axiom
-
|- !f0 f1 f2 f3 f4 f5 f6 f7.
?fn.
(!a0 a1. fn (Conjn a0 a1) = f0 a0 a1 (fn a0) (fn a1)) /\
(!a0 a1. fn (Disjn a0 a1) = f1 a0 a1 (fn a0) (fn a1)) /\
(!a. fn (Negn a) = f2 a (fn a)) /\ (!a. fn (UnrelatedBool a) = f3 a) /\
(!a. fn (xLT a) = f4 a) /\ (!a. fn (LTx a) = f5 a) /\
(!a. fn (xEQ a) = f6 a) /\ !a0 a1. fn (xDivided a0 a1) = f7 a0 a1
- deep_form_induction
-
|- !P.
(!d d0. P d /\ P d0 ==> P (Conjn d d0)) /\
(!d d0. P d /\ P d0 ==> P (Disjn d d0)) /\ (!d. P d ==> P (Negn d)) /\
(!b. P (UnrelatedBool b)) /\ (!i. P (xLT i)) /\ (!i. P (LTx i)) /\
(!i. P (xEQ i)) /\ (!i i0. P (xDivided i i0)) ==>
!d. P d
- neginf_ok
-
|- !f. ?y. !x. x < y ==> (eval_form f x = eval_form (neginf f) x)
- posinf_ok
-
|- !f. ?y. !x. y < x ==> (eval_form f x = eval_form (posinf f) x)
- add_d_neginf
-
|- !f x y d.
alldivide f d ==>
(eval_form (neginf f) x = eval_form (neginf f) (x + y * d))
- add_d_posinf
-
|- !f x y d.
alldivide f d ==>
(eval_form (posinf f) x = eval_form (posinf f) (x + y * d))
- neginf_disj1_implies_exoriginal
-
|- !f d i.
alldivide f d ==>
0 < i /\ i <= d /\ eval_form (neginf f) i ==>
?x. eval_form f x
- posinf_disj1_implies_exoriginal
-
|- !f d i.
alldivide f d ==>
0 < i /\ i <= d /\ eval_form (posinf f) i ==>
?x. eval_form f x
- neginf_exoriginal_implies_rhs
-
|- !f d x.
alldivide f d /\ 0 < d ==>
eval_form f x ==>
(?i. 0 < i /\ i <= d /\ eval_form (neginf f) i) \/
?j b. 0 < j /\ j <= d /\ b IN Bset T f /\ eval_form f (b + j)
- posinf_exoriginal_implies_rhs
-
|- !f d x.
alldivide f d /\ 0 < d ==>
eval_form f x ==>
(?i. 0 < i /\ i <= d /\ eval_form (posinf f) i) \/
?j b. 0 < j /\ j <= d /\ b IN Aset T f /\ eval_form f (b + ~j)
- neginf_exoriginal_eq_rhs
-
|- !f d.
alldivide f d /\ 0 < d ==>
((?x. eval_form f x) =
(?i. K (0 < i /\ i <= d) i /\ eval_form (neginf f) i) \/
?b j. (b IN Bset T f /\ K (0 < j /\ j <= d) j) /\ eval_form f (b + j))
- posinf_exoriginal_eq_rhs
-
|- !f d.
alldivide f d /\ 0 < d ==>
((?x. eval_form f x) =
(?i. K (0 < i /\ i <= d) i /\ eval_form (posinf f) i) \/
?b j.
(b IN Aset T f /\ K (0 < j /\ j <= d) j) /\ eval_form f (b + ~1 * j))
- in_bset
-
|- ((?b. b IN Bset pos (Conjn f1 f2) /\ P b) =
(?b. b IN Bset pos f1 /\ P b) \/ ?b. b IN Bset pos f2 /\ P b) /\
((?b. b IN Bset pos (Disjn f1 f2) /\ P b) =
(?b. b IN Bset pos f1 /\ P b) \/ ?b. b IN Bset pos f2 /\ P b) /\
((?b. b IN Bset T (Negn f) /\ P b) = ?b. b IN Bset F f /\ P b) /\
((?b. b IN Bset F (Negn f) /\ P b) = ?b. b IN Bset T f /\ P b) /\
((?b. b IN Bset pos (UnrelatedBool b0) /\ P b) = F) /\
((?b. b IN Bset T (xLT i) /\ P b) = F) /\
((?b. b IN Bset F (xLT i) /\ P b) = P (i + ~1)) /\
((?b. b IN Bset T (LTx i) /\ P b) = P i) /\
((?b. b IN Bset F (LTx i) /\ P b) = F) /\
((?b. b IN Bset T (xEQ i) /\ P b) = P (i + ~1)) /\
((?b. b IN Bset F (xEQ i) /\ P b) = P i) /\
((?b. b IN Bset pos (xDivided i1 i2) /\ P b) = F)
- in_aset
-
|- ((?a. a IN Aset pos (Conjn f1 f2) /\ P a) =
(?a. a IN Aset pos f1 /\ P a) \/ ?a. a IN Aset pos f2 /\ P a) /\
((?a. a IN Aset pos (Disjn f1 f2) /\ P a) =
(?a. a IN Aset pos f1 /\ P a) \/ ?a. a IN Aset pos f2 /\ P a) /\
((?a. a IN Aset T (Negn f) /\ P a) = ?a. a IN Aset F f /\ P a) /\
((?a. a IN Aset F (Negn f) /\ P a) = ?a. a IN Aset T f /\ P a) /\
((?a. a IN Aset pos (UnrelatedBool a0) /\ P a) = F) /\
((?a. a IN Aset T (xLT i) /\ P a) = P i) /\
((?a. a IN Aset F (xLT i) /\ P a) = F) /\
((?a. a IN Aset T (LTx i) /\ P a) = F) /\
((?a. a IN Aset F (LTx i) /\ P a) = P (i + 1)) /\
((?a. a IN Aset T (xEQ i) /\ P a) = P (i + 1)) /\
((?a. a IN Aset F (xEQ i) /\ P a) = P i) /\
((?a. a IN Aset pos (xDivided i1 i2) /\ P a) = F)