Who Cites interleaving? | |
interleaving | Def interleaving(T;L1;L2;L) == ||L|| = ||L1||+||L2|| & disjoint_sublists(T;L1;L2;L) |
disjoint_sublists | Def disjoint_sublists(T;L1;L2;L) == f1:(||L1||||L||), f2:(||L2||||L||). increasing(f1;||L1||) & (j:||L1||. L1[j] = L[(f1(j))] T) & increasing(f2;||L2||) & (j:||L2||. L2[j] = L[(f2(j))] T) & (j1:||L1||, j2:||L2||. f1(j1) = f2(j2)) |
length | Def ||as|| == Case of as; nil 0 ; a.as' ||as'||+1 (recursive) |
Thm* A:Type, l:A List. ||l|| | |
Thm* ||nil|| | |
nat | Def == {i:| 0i } |
Thm* Type | |
increasing | Def increasing(f;k) == i:(k-1). f(i) < f(i+1) |
Thm* k:, f:(k). increasing(f;k) Prop | |
int_seg | Def {i..j} == {k:| i k < j } |
Thm* m,n:. {m..n} Type | |
lelt | Def i j < k == ij & j < k |
le | Def AB == B < A |
Thm* i,j:. (ij) Prop | |
not | Def A == A False |
Thm* A:Prop. (A) Prop | |
select | Def l[i] == hd(nth_tl(i;l)) |
Thm* A:Type, l:A List, n:. 0n n < ||l|| l[n] A | |
nth_tl | Def nth_tl(n;as) == if n0 as else nth_tl(n-1;tl(as)) fi (recursive) |
Thm* A:Type, as:A List, i:. nth_tl(i;as) A List | |
hd | Def hd(l) == Case of l; nil "?" ; h.t h |
Thm* A:Type, l:A List. ||l||1 hd(l) A | |
Thm* A:Type, l:A List. hd(l) A | |
tl | Def tl(l) == Case of l; nil nil ; h.t t |
Thm* A:Type, l:A List. tl(l) A List | |
le_int | Def ij == j < i |
Thm* i,j:. (ij) | |
lt_int | Def i < j == if i < j true ; false fi |
Thm* i,j:. (i < j) | |
bnot | Def b == if b false else true fi |
Thm* b:. b |
Syntax: | interleaving(T;L1;L2;L) | has structure: | interleaving(T; L1; L2; L) |
About: