Step
*
1
of Lemma
RankEx2-defop
1. [T] : Type
2. [S] : Type
3. [P] : Type
4. [R] : P ─→ RankEx2(S;T) ─→ ℙ
5. ∀t:T. (∃x:{P| (R x RankEx2_LeafT(t))})@i
6. ∀s:S. (∃x:{P| (R x RankEx2_LeafS(s))})@i
7. ∀d:RankEx2(S;T). ∀s:S. ∀t:T.  ((∃x:{P| (R x d)}) 
⇒ (∃x:{P| (R x RankEx2_Prod(<<d, s>, t>))}))@i
8. ∀z:S × RankEx2(S;T) + RankEx2(S;T)
     (case z of inl(p) => ∃x:{P| (R x (snd(p)))} | inr(d) => ∃x:{P| (R x d)} 
⇒ (∃x:{P| (R x RankEx2_Union(z))}))@i
9. ∀L:(S × RankEx2(S;T)) List. ((∀p∈L.∃x:{P| (R x (snd(p)))}) 
⇒ (∃x:{P| (R x RankEx2_ListProd(L))}))@i
10. ∀z:T + (RankEx2(S;T) List)
      (case z of inl(p) => True | inr(L) => (∀p∈L.∃x:{P| (R x p)}) 
⇒ (∃x:{P| (R x RankEx2_UnionList(z))}))@i
⊢ ∀t:RankEx2(S;T). (∃x:{P| (R x t)})
BY
{ (InstLemma `RankEx2-definition` [⌈S⌉;⌈T⌉;⌈P⌉;⌈R⌉]⋅ THENA Try (Complete (Auto))) }
1
.....antecedent..... 
1. [T] : Type
2. [S] : Type
3. [P] : Type
4. [R] : P ─→ RankEx2(S;T) ─→ ℙ
5. ∀t:T. (∃x:{P| (R x RankEx2_LeafT(t))})@i
6. ∀s:S. (∃x:{P| (R x RankEx2_LeafS(s))})@i
7. ∀d:RankEx2(S;T). ∀s:S. ∀t:T.  ((∃x:{P| (R x d)}) 
⇒ (∃x:{P| (R x RankEx2_Prod(<<d, s>, t>))}))@i
8. ∀z:S × RankEx2(S;T) + RankEx2(S;T)
     (case z of inl(p) => ∃x:{P| (R x (snd(p)))} | inr(d) => ∃x:{P| (R x d)} 
⇒ (∃x:{P| (R x RankEx2_Union(z))}))@i
9. ∀L:(S × RankEx2(S;T)) List. ((∀p∈L.∃x:{P| (R x (snd(p)))}) 
⇒ (∃x:{P| (R x RankEx2_ListProd(L))}))@i
10. ∀z:T + (RankEx2(S;T) List)
      (case z of inl(p) => True | inr(L) => (∀p∈L.∃x:{P| (R x p)}) 
⇒ (∃x:{P| (R x RankEx2_UnionList(z))}))@i
⊢ ∀prod:RankEx2(S;T) × S × T. (let u,u1 = prod in let u1,u2 = u in {x:P| R[x;u1]}  
⇒ {x:P| R[x;RankEx2_Prod(prod)]} )
2
.....antecedent..... 
1. [T] : Type
2. [S] : Type
3. [P] : Type
4. [R] : P ─→ RankEx2(S;T) ─→ ℙ
5. ∀t:T. (∃x:{P| (R x RankEx2_LeafT(t))})@i
6. ∀s:S. (∃x:{P| (R x RankEx2_LeafS(s))})@i
7. ∀d:RankEx2(S;T). ∀s:S. ∀t:T.  ((∃x:{P| (R x d)}) 
⇒ (∃x:{P| (R x RankEx2_Prod(<<d, s>, t>))}))@i
8. ∀z:S × RankEx2(S;T) + RankEx2(S;T)
     (case z of inl(p) => ∃x:{P| (R x (snd(p)))} | inr(d) => ∃x:{P| (R x d)} 
⇒ (∃x:{P| (R x RankEx2_Union(z))}))@i
9. ∀L:(S × RankEx2(S;T)) List. ((∀p∈L.∃x:{P| (R x (snd(p)))}) 
⇒ (∃x:{P| (R x RankEx2_ListProd(L))}))@i
10. ∀z:T + (RankEx2(S;T) List)
      (case z of inl(p) => True | inr(L) => (∀p∈L.∃x:{P| (R x p)}) 
⇒ (∃x:{P| (R x RankEx2_UnionList(z))}))@i
⊢ ∀union:S × RankEx2(S;T) + RankEx2(S;T)
    (case union of inl(u) => let u1,u2 = u in {x:P| R[x;u2]}  | inr(u1) => {x:P| R[x;u1]} 
    
⇒ {x:P| R[x;RankEx2_Union(union)]} )
3
.....antecedent..... 
1. [T] : Type
2. [S] : Type
3. [P] : Type
4. [R] : P ─→ RankEx2(S;T) ─→ ℙ
5. ∀t:T. (∃x:{P| (R x RankEx2_LeafT(t))})@i
6. ∀s:S. (∃x:{P| (R x RankEx2_LeafS(s))})@i
7. ∀d:RankEx2(S;T). ∀s:S. ∀t:T.  ((∃x:{P| (R x d)}) 
⇒ (∃x:{P| (R x RankEx2_Prod(<<d, s>, t>))}))@i
8. ∀z:S × RankEx2(S;T) + RankEx2(S;T)
     (case z of inl(p) => ∃x:{P| (R x (snd(p)))} | inr(d) => ∃x:{P| (R x d)} 
⇒ (∃x:{P| (R x RankEx2_Union(z))}))@i
9. ∀L:(S × RankEx2(S;T)) List. ((∀p∈L.∃x:{P| (R x (snd(p)))}) 
⇒ (∃x:{P| (R x RankEx2_ListProd(L))}))@i
10. ∀z:T + (RankEx2(S;T) List)
      (case z of inl(p) => True | inr(L) => (∀p∈L.∃x:{P| (R x p)}) 
⇒ (∃x:{P| (R x RankEx2_UnionList(z))}))@i
⊢ ∀listprod:(S × RankEx2(S;T)) List
    ((∀u∈listprod.let u1,u2 = u in {x:P| R[x;u2]} ) 
⇒ {x:P| R[x;RankEx2_ListProd(listprod)]} )
4
1. [T] : Type
2. [S] : Type
3. [P] : Type
4. [R] : P ─→ RankEx2(S;T) ─→ ℙ
5. ∀t:T. (∃x:{P| (R x RankEx2_LeafT(t))})@i
6. ∀s:S. (∃x:{P| (R x RankEx2_LeafS(s))})@i
7. ∀d:RankEx2(S;T). ∀s:S. ∀t:T.  ((∃x:{P| (R x d)}) 
⇒ (∃x:{P| (R x RankEx2_Prod(<<d, s>, t>))}))@i
8. ∀z:S × RankEx2(S;T) + RankEx2(S;T)
     (case z of inl(p) => ∃x:{P| (R x (snd(p)))} | inr(d) => ∃x:{P| (R x d)} 
⇒ (∃x:{P| (R x RankEx2_Union(z))}))@i
9. ∀L:(S × RankEx2(S;T)) List. ((∀p∈L.∃x:{P| (R x (snd(p)))}) 
⇒ (∃x:{P| (R x RankEx2_ListProd(L))}))@i
10. ∀z:T + (RankEx2(S;T) List)
      (case z of inl(p) => True | inr(L) => (∀p∈L.∃x:{P| (R x p)}) 
⇒ (∃x:{P| (R x RankEx2_UnionList(z))}))@i
11. ∀v:RankEx2(S;T). {x:P| R[x;v]} 
⊢ ∀t:RankEx2(S;T). (∃x:{P| (R x t)})
Latex:
1.  [T]  :  Type
2.  [S]  :  Type
3.  [P]  :  Type
4.  [R]  :  P  {}\mrightarrow{}  RankEx2(S;T)  {}\mrightarrow{}  \mBbbP{}
5.  \mforall{}t:T.  (\mexists{}x:\{P|  (R  x  RankEx2\_LeafT(t))\})@i
6.  \mforall{}s:S.  (\mexists{}x:\{P|  (R  x  RankEx2\_LeafS(s))\})@i
7.  \mforall{}d:RankEx2(S;T).  \mforall{}s:S.  \mforall{}t:T.    ((\mexists{}x:\{P|  (R  x  d)\})  {}\mRightarrow{}  (\mexists{}x:\{P|  (R  x  RankEx2\_Prod(<<d,  s>,  t>))\}))@i
8.  \mforall{}z:S  \mtimes{}  RankEx2(S;T)  +  RankEx2(S;T)
          (case  z  of  inl(p)  =>  \mexists{}x:\{P|  (R  x  (snd(p)))\}  |  inr(d)  =>  \mexists{}x:\{P|  (R  x  d)\}
          {}\mRightarrow{}  (\mexists{}x:\{P|  (R  x  RankEx2\_Union(z))\}))@i
9.  \mforall{}L:(S  \mtimes{}  RankEx2(S;T))  List
          ((\mforall{}p\mmember{}L.\mexists{}x:\{P|  (R  x  (snd(p)))\})  {}\mRightarrow{}  (\mexists{}x:\{P|  (R  x  RankEx2\_ListProd(L))\}))@i
10.  \mforall{}z:T  +  (RankEx2(S;T)  List)
            (case  z  of  inl(p)  =>  True  |  inr(L)  =>  (\mforall{}p\mmember{}L.\mexists{}x:\{P|  (R  x  p)\})
            {}\mRightarrow{}  (\mexists{}x:\{P|  (R  x  RankEx2\_UnionList(z))\}))@i
\mvdash{}  \mforall{}t:RankEx2(S;T).  (\mexists{}x:\{P|  (R  x  t)\})
By
(InstLemma  `RankEx2-definition`  [\mkleeneopen{}S\mkleeneclose{};\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}P\mkleeneclose{};\mkleeneopen{}R\mkleeneclose{}]\mcdot{}  THENA  Try  (Complete  (Auto)))
Home
Index