main = OrdList.Start OrdList.Start = <{OrdList._c;46;10_13}> (OrdList.top (OrdList.S (OrdList.S (OrdList.S (OrdList.S (OrdList.S (OrdList.S (OrdList.S (OrdList.S (OrdList.S (OrdList.S (OrdList.S (OrdList.S OrdList.Z))))))))))))) :: OrdList.Nat = OrdList.Z | OrdList.S a1 OrdList.top !n_0 = OrdList.andList (OrdList.append (OrdList.map (OrdList.prop True) (OrdList.boolList n_0)) (OrdList.map (OrdList.prop False) (OrdList.boolList n_0))) OrdList.boolList !_x_0 = select _x_0 (OrdList.Z -> OrdList.Cons OrdList.Nil OrdList.Nil) (OrdList.S n_1_0 -> OrdList.append (OrdList.boolList n_1_0) (OrdList.append (OrdList.map (OrdList.Cons False) (OrdList.boolList n_1_0)) (OrdList.map (OrdList.Cons True) (OrdList.boolList n_1_0)))) :: OrdList.List = OrdList.Nil | OrdList.Cons a1 a2 OrdList.map f_0 !_x_1 = select _x_1 (OrdList.Nil -> OrdList.Nil) (OrdList.Cons x_1_0 xs_1_1 -> OrdList.Cons (f_0 x_1_0) (OrdList.map f_0 xs_1_1)) OrdList.append !_x_0 ys_1 = select _x_0 (OrdList.Nil -> ys_1) (OrdList.Cons x_1_0 xs_1_1 -> OrdList.Cons x_1_0 (OrdList.append xs_1_1 ys_1)) OrdList.prop x_0 !xs_1 = OrdList.implies (OrdList.ord xs_1) (OrdList.ord (OrdList.insert x_0 xs_1)) OrdList.insert x_0 !_x_1 = select _x_1 (OrdList.Nil -> OrdList.Cons x_0 OrdList.Nil) (OrdList.Cons y_1_0 ys_1_1 -> if (OrdList.implies x_0 y_1_0) (OrdList.Cons x_0 (OrdList.Cons y_1_0 ys_1_1)) (OrdList.Cons y_1_0 (OrdList.insert x_0 ys_1_1))) OrdList.implies !_x_0 x_1 = if _x_0 x_1 True OrdList.ord !_x_0 = select _x_0 (OrdList.Nil -> True) (OrdList.Cons x_1_0 _x_1_1 -> select _x_1_1 (OrdList.Nil -> True) (OrdList.Cons y_2_0 ys_2_1 -> OrdList.and (OrdList.implies x_1_0 y_2_0) (OrdList.ord (OrdList.Cons y_2_0 ys_2_1))) ) OrdList.and !_x_0 x_1 = if _x_0 x_1 False OrdList.andList !_x_0 = select _x_0 (OrdList.Nil -> True) (OrdList.Cons x_1_0 xs_1_1 -> OrdList.and x_1_0 (OrdList.andList xs_1_1)) <{OrdList._c;46;10_13}> !_x_0 = if (eq _x_0 False) 0 (if (eq _x_0 True) 1 nomatch)