Theory "DeepSyntax"

Parents     list int_arith pred_set

Signature

Type Arity
deep_form 0
Constant Type
mk_deep_form :(bool # int # int) recspace -> deep_form
eval_form :deep_form -> int -> bool
alldivide :deep_form -> int -> bool
xEQ :int -> deep_form
xLT :int -> deep_form
xDivided :int -> int -> deep_form
deep_form_size :deep_form -> num
dest_deep_form :deep_form -> (bool # int # int) recspace
Disjn :deep_form -> deep_form -> deep_form
Aset :bool -> deep_form -> int -> bool
Conjn :deep_form -> deep_form -> deep_form
Bset :bool -> deep_form -> int -> bool
UnrelatedBool :bool -> deep_form
posinf :deep_form -> deep_form
DeepSyntax0 :deep_form -> deep_form -> deep_form
DeepSyntax1 :deep_form -> deep_form -> deep_form
DeepSyntax2 :deep_form -> deep_form
DeepSyntax3 :bool -> deep_form
DeepSyntax4 :int -> deep_form
DeepSyntax5 :int -> deep_form
DeepSyntax6 :int -> deep_form
DeepSyntax7 :int -> int -> deep_form
Negn :deep_form -> deep_form
deep_form_case :(deep_form -> deep_form -> 'a) -> (deep_form -> deep_form -> 'a) -> (deep_form -> 'a) -> (bool -> 'a) -> (int -> 'a) -> (int -> 'a) -> (int -> 'a) -> (int -> int -> 'a) -> deep_form -> 'a
neginf :deep_form -> deep_form
LTx :int -> deep_form

Definitions

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) = {}


Theorems

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)