Step
*
of Lemma
general-append-cancellation
∀[T:Type]. ∀[as,bs,cs,ds:T List].
  ({(as = bs ∈ (T List)) ∧ (cs = ds ∈ (T List))}) supposing 
     (((||as|| = ||bs|| ∈ ℤ) ∨ (||cs|| = ||ds|| ∈ ℤ)) and 
     ((as @ cs) = (bs @ ds) ∈ (T List)))
BY
{ (InductionOnList THEN All Reduce THEN Auto) }
1
1. T : Type
2. bs : T List
3. cs : T List
4. ds : T List
5. cs = (bs @ ds) ∈ (T List)
6. (0 = ||bs|| ∈ ℤ) ∨ (||cs|| = ||ds|| ∈ ℤ)
⊢ {([] = bs ∈ (T List)) ∧ (cs = ds ∈ (T List))}
2
1. T : Type
2. u : T
3. v : T List
4. ∀[bs,cs,ds:T List].
     ({(v = bs ∈ (T List)) ∧ (cs = ds ∈ (T List))}) supposing 
        (((||v|| = ||bs|| ∈ ℤ) ∨ (||cs|| = ||ds|| ∈ ℤ)) and 
        ((v @ cs) = (bs @ ds) ∈ (T List)))
5. bs : T List
6. cs : T List
7. ds : T List
8. [u / (v @ cs)] = (bs @ ds) ∈ (T List)
9. ((||v|| + 1) = ||bs|| ∈ ℤ) ∨ (||cs|| = ||ds|| ∈ ℤ)
⊢ {([u / v] = bs ∈ (T List)) ∧ (cs = ds ∈ (T List))}
Latex:
Latex:
\mforall{}[T:Type].  \mforall{}[as,bs,cs,ds:T  List].
    (\{(as  =  bs)  \mwedge{}  (cs  =  ds)\})  supposing 
          (((||as||  =  ||bs||)  \mvee{}  (||cs||  =  ||ds||))  and 
          ((as  @  cs)  =  (bs  @  ds)))
By
Latex:
(InductionOnList  THEN  All  Reduce  THEN  Auto)
Home
Index