and several pages later.Step 1 [1]
>> [all A : type
[all x : [list A]
[all y : [list A]
[all z : [list A] [[append x [append y z]]
= [append [append x y] z]]]]]]
> (omega append)
The first step is to draw into the proof the relevant axioms from KW . There are two which relate to append. We use (omega append) to draw these axioms into the proof. The next step is to eliminate the quantifiers in the conclusion. We eliminate the outer quantifier by a step of allr.
Step 2 [1]
>> [all A : type
[all x : [list A]
[all y : [list A]
[all z : [list A] [[append x [append y z]]
= [append [append x y] z]]]]]]
1. [all x : type [all y : [list x] [[append [] y] = y]]]
2. [all x : type
[all y : [list x]
[all z : [list x]
[all x1 : x [[append [cons x1 z] y]
= [cons x1 [append z y]]]]]]]
> (allr a)
The result is a proposition of the form (x = x) which is solved by =r.
Step 63 [1]
>> [[cons &&y1 [append [append &&x &&y] &&z]]
= [cons &&y1 [append [append &&x &&y] &&z]]]
1. [[append &&x [append &&y &&z]]
= [append [append &&x &&y] &&z]]
2. [all z : [list &&a]
[[append &&x [append &&y z]]
= [append [append &&x &&y] z]]]
3. [&&y : [list &&a]]
4. [all y : [list &&a]
[all z : [list &&a]
[[append &&x [append y z]]
= [append [append &&x y] z]]]]
5. [&&x : [list &&a]]
6. [&&y1 : &&a]
7. [&&a : type]
8. [&&z : [list &&a]]
> =r