Step
*
1
1
of Lemma
assert-palindrome-test
.....equality.....
1. T : Type
2. eq : EqDecider(T)
3. L : T List
⊢ accumulate (with value a and list item p):
let x,x' = p
in eval b = a ∧b (eq x x') in
b
over list:
zip(rev(L);L)
with starting value:
tt) ~ list-deq(eq) rev(L) L
BY
{ xxx((GenConcl ⌜rev(L) = R ∈ (T List)⌝⋅ THENA Auto) THEN Assert ⌜||R|| = ||L|| ∈ ℤ⌝⋅)xxx }
1
.....assertion.....
1. T : Type
2. eq : EqDecider(T)
3. L : T List
4. R : T List
5. rev(L) = R ∈ (T List)
⊢ ||R|| = ||L|| ∈ ℤ
2
1. T : Type
2. eq : EqDecider(T)
3. L : T List
4. R : T List
5. rev(L) = R ∈ (T List)
6. ||R|| = ||L|| ∈ ℤ
⊢ accumulate (with value a and list item p):
let x,x' = p
in eval b = a ∧b (eq x x') in
b
over list:
zip(R;L)
with starting value:
tt) ~ list-deq(eq) R L
Latex:
Latex:
.....equality.....
1. T : Type
2. eq : EqDecider(T)
3. L : T List
\mvdash{} accumulate (with value a and list item p):
let x,x' = p
in eval b = a \mwedge{}\msubb{} (eq x x') in
b
over list:
zip(rev(L);L)
with starting value:
tt) \msim{} list-deq(eq) rev(L) L
By
Latex:
xxx((GenConcl \mkleeneopen{}rev(L) = R\mkleeneclose{}\mcdot{} THENA Auto) THEN Assert \mkleeneopen{}||R|| = ||L||\mkleeneclose{}\mcdot{})xxx
Home
Index