Step
*
2
1
of Lemma
interleaving_of_cons
1. [T] : Type
2. x : T
3. L : T List
4. L1 : T List
5. L2 : T List
6. ¬↑null(L1)
7. ↑null(L2)
⊢ interleaving(T;L1;L2;[x / L])
⇐⇒ (0 < ||L1|| c∧ ((L1[0] = x ∈ T) ∧ interleaving(T;tl(L1);L2;L)))
    ∨ (0 < ||L2|| c∧ ((L2[0] = x ∈ T) ∧ interleaving(T;L1;tl(L2);L)))
BY
{ ((((RW assert_pushdownC (-1) THENA Auto) THEN HypSubst (-1) 0) THENA Auto) THEN Reduce 0) }
1
1. [T] : Type
2. x : T
3. L : T List
4. L1 : T List
5. L2 : T List
6. ¬↑null(L1)
7. L2 = [] ∈ (T List)
⊢ interleaving(T;L1;[];[x / L])
⇐⇒ (0 < ||L1|| c∧ ((L1[0] = x ∈ T) ∧ interleaving(T;tl(L1);[];L))) ∨ (0 < 0 c∧ ((⊥ = x ∈ T) ∧ interleaving(T;L1;[];L)))
Latex:
Latex:
1.  [T]  :  Type
2.  x  :  T
3.  L  :  T  List
4.  L1  :  T  List
5.  L2  :  T  List
6.  \mneg{}\muparrow{}null(L1)
7.  \muparrow{}null(L2)
\mvdash{}  interleaving(T;L1;L2;[x  /  L])
\mLeftarrow{}{}\mRightarrow{}  (0  <  ||L1||  c\mwedge{}  ((L1[0]  =  x)  \mwedge{}  interleaving(T;tl(L1);L2;L)))
        \mvee{}  (0  <  ||L2||  c\mwedge{}  ((L2[0]  =  x)  \mwedge{}  interleaving(T;L1;tl(L2);L)))
By
Latex:
((((RW  assert\_pushdownC  (-1)  THENA  Auto)  THEN  HypSubst  (-1)  0)  THENA  Auto)  THEN  Reduce  0)
Home
Index