At:
paren order1
2
1
1
1
1
1.
T: Type
2.
s1: (T+T) List
3.
s2: (T+T) List
4.
i:T, s1@0,s2:(T+T) List. s1 = (s1@0 @ [inl(i) / s2]) 
(inr(i)
s2)
5.
i:T, s1,s2@0:(T+T) List. s2 = (s1 @ [inl(i) / s2@0]) 
(inr(i)
s2@0)
6.
paren(T;s1)
7.
paren(T;s2)
8.
i: T
9.
s1@0: (T+T) List
10.
s2@0: (T+T) List
11.
(s1 @ s2) = (s1@0 @ [inl(i) / s2@0])
12.
s1 = (s1@0 @ nil)
13.
[inl(i) / s2@0] = s2
14.
e1: (T+T) List
15.
[inl(i)] = e1
16.
s2 = (e1 @ s2@0)
s2 = (nil @ [inl(i) / s2@0])
By:
Reduce 0
THEN
SubstFor e1 -1
THEN
Reduce -1
Generated subgoals:
None
About: