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