At:
paren interval
3
1
1
2
1
1.
T: Type
2.
s: (T+T) List
3.
t: T
4.
no_repeats(T+T;s)

(
s1,s2,s3:(T+T) List, x:T. s = (s1 @ [inl(x) / (s2 @ [inr(x) / s3])]) 
paren(T;s2))
5.
paren(T;s)
6.
l_disjoint(T+T;[inl(t)];s @ [inr(t)])
7.
no_repeats(T+T;[inl(t)])
8.
l_disjoint(T+T;s;[inr(t)])
9.
no_repeats(T+T;s)
10.
no_repeats(T+T;[inr(t)])
11.
s2: (T+T) List
12.
s3: (T+T) List
13.
x: T
14.
inl(t) = inl(x)
T+T
15.
(s @ [inr(t)]) = (s2 @ [inr(x) / s3])
16.
s2 = (s @ nil)
17.
inr(t) = inr(x)
T+T
18.
nil = s3
paren(T;s2)
By:
SubstFor s2 0
THEN
RWO
Thm*
l:T List. (l @ nil) ~ l
0
Generated subgoals:
None
About: