Step
*
1
2
2
of Lemma
ptuple-continuous
1. P : Type
2. a : Atom ⟶ P ⟶ ((P + P + Type) List)
3. X : ℕ ⟶ P ⟶ Type
4. p : P
5. x : ⋂n:ℕ. (ptuple(lbl,p.a[lbl;p];X n) p)
6. ∀n:ℕ. (<fst(x), snd(x)> ∈ ptuple(lbl,p.a[lbl;p];λp.(X n p)) p)
7. x ~ <fst(x), snd(x)>
8. fst(x) ∈ {lbl:Atom| 0 < ||a[lbl;p]||} 
9. (snd(x))
= (snd(x))
∈ (⋂n:ℕ
     tuple-type(map(λx.case x of inl(y) => case y of inl(p) => X n p | inr(p) => (X n p) List | inr(E) => E;
                    a[fst(x);p])))
⊢ tuple-type(map(λp.⋂n:ℕ
                      ((λn,x. case x of inl(y) => case y of inl(p) => X n p | inr(p) => (X n p) List | inr(E) => E) n p)\000C;
                 a[fst(x);p])) ⊆r tuple-type(map(λx.case x
                                                     of inl(y) =>
                                                     case y of inl(p) => ⋂n:ℕ. (X n p) | inr(p) => (⋂n:ℕ. (X n p)) List
                                                     | inr(E) =>
                                                     E;a[fst(x);p]))
BY
{ (Reduce 0
   THEN (BLemma `subtype_rel_weakening` THENW Auto)
   THEN (BLemma `tuple-type-ext` THENW Auto)
   THEN (RWO "map-length" 0 THEN Auto)
   THEN (RWO  "select-map" 0 THENA Auto)
   THEN Reduce 0) }
1
1. P : Type
2. a : Atom ⟶ P ⟶ ((P + P + Type) List)
3. X : ℕ ⟶ P ⟶ Type
4. p : P
5. x : ⋂n:ℕ. (ptuple(lbl,p.a[lbl;p];X n) p)
6. ∀n:ℕ. (<fst(x), snd(x)> ∈ ptuple(lbl,p.a[lbl;p];λp.(X n p)) p)
7. x ~ <fst(x), snd(x)>
8. fst(x) ∈ {lbl:Atom| 0 < ||a[lbl;p]||} 
9. (snd(x))
= (snd(x))
∈ (⋂n:ℕ
     tuple-type(map(λx.case x of inl(y) => case y of inl(p) => X n p | inr(p) => (X n p) List | inr(E) => E;
                    a[fst(x);p])))
10. ||a[fst(x);p]|| = ||a[fst(x);p]|| ∈ ℤ
11. i : ℕ||a[fst(x);p]||
⊢ ⋂n:ℕ. case a[fst(x);p][i] of inl(y) => case y of inl(p) => X n p | inr(p) => (X n p) List | inr(E) => E ≡
  case a[fst(x);p][i] of inl(y) => case y of inl(p) => ⋂n:ℕ. (X n p) | inr(p) => (⋂n:ℕ. (X n p)) List | inr(E) => E
Latex:
Latex:
1.  P  :  Type
2.  a  :  Atom  {}\mrightarrow{}  P  {}\mrightarrow{}  ((P  +  P  +  Type)  List)
3.  X  :  \mBbbN{}  {}\mrightarrow{}  P  {}\mrightarrow{}  Type
4.  p  :  P
5.  x  :  \mcap{}n:\mBbbN{}.  (ptuple(lbl,p.a[lbl;p];X  n)  p)
6.  \mforall{}n:\mBbbN{}.  (<fst(x),  snd(x)>  \mmember{}  ptuple(lbl,p.a[lbl;p];\mlambda{}p.(X  n  p))  p)
7.  x  \msim{}  <fst(x),  snd(x)>
8.  fst(x)  \mmember{}  \{lbl:Atom|  0  <  ||a[lbl;p]||\} 
9.  (snd(x))  =  (snd(x))
\mvdash{}  tuple-type(map(\mlambda{}p.\mcap{}n:\mBbbN{}
                                            ((\mlambda{}n,x.  case  x
                                                            of  inl(y)  =>
                                                            case  y  of  inl(p)  =>  X  n  p  |  inr(p)  =>  (X  n  p)  List
                                                            |  inr(E)  =>
                                                            E) 
                                              n 
                                              p);a[fst(x);p]))  \msubseteq{}r  tuple-type(map(\mlambda{}x.case  x
                                                                                                                            of  inl(y)  =>
                                                                                                                            case  y
                                                                                                                              of  inl(p)  =>
                                                                                                                              \mcap{}n:\mBbbN{}.  (X  n  p)
                                                                                                                              |  inr(p)  =>
                                                                                                                              (\mcap{}n:\mBbbN{}.  (X  n  p))  List
                                                                                                                            |  inr(E)  =>
                                                                                                                            E;a[fst(x);p]))
By
Latex:
(Reduce  0
  THEN  (BLemma  `subtype\_rel\_weakening`  THENW  Auto)
  THEN  (BLemma  `tuple-type-ext`  THENW  Auto)
  THEN  (RWO  "map-length"  0  THEN  Auto)
  THEN  (RWO    "select-map"  0  THENA  Auto)
  THEN  Reduce  0)
Home
Index