blob: 3aa3e9e90b7cb44066355fee2b2d08fb8b9630f9 [file] [edit]
inductive Cover : (x y z : List α) -> Type u
| done : Cover [] [] []
| left : Cover x y z -> Cover (t :: x) y (t :: z)
| right : Cover x y z -> Cover x (t :: y) (t :: z)
| both : Cover x y z -> Cover (t :: x) (t :: y) (t :: z)
inductive Linear : Cover x y z -> Prop
| done : Linear .done
| left : Linear c -> Linear (.left c)
| right : Linear c -> Linear (.right c)