Step
*
of Lemma
lg-append_assoc
∀[T:Type]. ∀[a,b,c:LabeledGraph(T)].  (lg-append(a;lg-append(b;c)) ~ lg-append(lg-append(a;b);c))
BY
{ ((UnivCD THENA Auto)
   THEN (RepUR ``lg-append`` 0
         THEN (RWW "map_append_sq append_assoc_sq map-map" 0 THENA Auto)⋅
         THEN RepeatFor 2 (EqCD)
         THEN Try (Trivial))
   THEN RepUR ``compose`` 0⋅
   THEN (GenConcl ⌈c = L ∈ ((T × ℤ List × (ℤ List)) List)⌉⋅
         THENA (DVar `c' THEN DoSubsume THEN Try (Trivial) THEN Thin (-1) THEN Auto)⋅
         )⋅) }
1
1. T : Type
2. a : LabeledGraph(T)
3. b : LabeledGraph(T)
4. c : LabeledGraph(T)
5. L : (T × ℤ List × (ℤ List)) List@i
6. c = L ∈ ((T × ℤ List × (ℤ List)) List)@i
⊢ map(λx.let lbl,in,out = let lbl,in,out = x in 
         <lbl, map(λx.(x + lg-size(b));in), map(λx.(x + lg-size(b));out)> in 
         <lbl, map(λx.(x + lg-size(a));in), map(λx.(x + lg-size(a));out)>L) 
~ map(λtr.let lbl,in,out = tr in 
          <lbl
          , map(λx.(x
                   + lg-size(a
                     @ map(λtr.let lbl,in,out = tr in 
                               <lbl, map(λx.(x + lg-size(a));in), map(λx.(x + lg-size(a));out)>b)));in)
          , map(λx.(x
                   + lg-size(a
                     @ map(λtr.let lbl,in,out = tr in 
                               <lbl, map(λx.(x + lg-size(a));in), map(λx.(x + lg-size(a));out)>b)));out)>L)
Latex:
Latex:
\mforall{}[T:Type].  \mforall{}[a,b,c:LabeledGraph(T)].    (lg-append(a;lg-append(b;c))  \msim{}  lg-append(lg-append(a;b);c))
By
Latex:
((UnivCD  THENA  Auto)
  THEN  (RepUR  ``lg-append``  0
              THEN  (RWW  "map\_append\_sq  append\_assoc\_sq  map-map"  0  THENA  Auto)\mcdot{}
              THEN  RepeatFor  2  (EqCD)
              THEN  Try  (Trivial))
  THEN  RepUR  ``compose``  0\mcdot{}
  THEN  (GenConcl  \mkleeneopen{}c  =  L\mkleeneclose{}\mcdot{}
              THENA  (DVar  `c'  THEN  DoSubsume  THEN  Try  (Trivial)  THEN  Thin  (-1)  THEN  Auto)\mcdot{}
              )\mcdot{})
Home
Index