Step * of Lemma destructor-product

No Annotations
[F,G:Type ⟶ Type].  (destructor{i:l}(T.F[T])  destructor{i:l}(T.G[T])  destructor{i:l}(T.F[T] × G[T]))
BY
(Auto
   THEN RenameVar `pf' (-2)
   THEN RenameVar `pg' (-1)
   THEN UseWitness ⌜λp.let x,y 
                       in let c1,L1 pf 
                          in let c2,L2 pg 
                             in <λL.<c1 firstn(||L1||;L), c2 nth_tl(||L1||;L)>L1 L2>⌝⋅
   THEN All (Unfold `destructor`)
   THEN (MemTypeCD THENA Auto)
   THEN (GenConcl ⌜pf f ∈ (x:F[T] ⟶ decomp{i:l}(T.F[T];T;x))⌝⋅ THENA Auto)
   THEN (GenConcl ⌜pg g ∈ (x:G[T] ⟶ decomp{i:l}(T.G[T];T;x))⌝⋅ THENA Auto)
   THEN ThinVar `pg'
   THEN ThinVar `pf'
   THEN (MemCD THENA Auto)
   THEN -1
   THEN Reduce 0
   THEN GenConclAtAddr [2;1]
   THEN Thin (-1)
   THEN -1
   THEN Reduce 0
   THEN GenConclAtAddr [2;1]) }

1
1. Type ⟶ Type
2. Type ⟶ Type
3. {T:Type| T ⊆Base} 
4. x:F[T] ⟶ decomp{i:l}(T.F[T];T;x)
5. x:G[T] ⟶ decomp{i:l}(T.G[T];T;x)
6. p1 F[T]
7. p2 G[T]
8. con Constr(T.F[T])
9. v1 {L:T List| ap-con(con;L) p1 ∈ F[T]} 
10. decomp{i:l}(T.G[T];T;p2)
11. (g p2) v ∈ decomp{i:l}(T.G[T];T;p2)
⊢ let c2,L2 
  in <λL.<con firstn(||v1||;L), c2 nth_tl(||v1||;L)>v1 L2> ∈ decomp{i:l}(T.F[T] × G[T];T;<p1, p2>)


Latex:


Latex:
No  Annotations
\mforall{}[F,G:Type  {}\mrightarrow{}  Type].
    (destructor\{i:l\}(T.F[T])  {}\mRightarrow{}  destructor\{i:l\}(T.G[T])  {}\mRightarrow{}  destructor\{i:l\}(T.F[T]  \mtimes{}  G[T]))


By


Latex:
(Auto
  THEN  RenameVar  `pf'  (-2)
  THEN  RenameVar  `pg'  (-1)
  THEN  UseWitness  \mkleeneopen{}\mlambda{}p.let  x,y  =  p 
                                          in  let  c1,L1  =  pf  x 
                                                in  let  c2,L2  =  pg  y 
                                                      in  <\mlambda{}L.<c1  firstn(||L1||;L),  c2  nth\_tl(||L1||;L)>,  L1  @  L2>\mkleeneclose{}\mcdot{}
  THEN  All  (Unfold  `destructor`)
  THEN  (MemTypeCD  THENA  Auto)
  THEN  (GenConcl  \mkleeneopen{}pf  =  f\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  (GenConcl  \mkleeneopen{}pg  =  g\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  ThinVar  `pg'
  THEN  ThinVar  `pf'
  THEN  (MemCD  THENA  Auto)
  THEN  D  -1
  THEN  Reduce  0
  THEN  GenConclAtAddr  [2;1]
  THEN  Thin  (-1)
  THEN  D  -1
  THEN  Reduce  0
  THEN  GenConclAtAddr  [2;1])




Home Index