21 lines
633 B
Text
21 lines
633 B
Text
inductive Tree (α : Type) : Type where
|
||
| leaf : Tree α
|
||
| node (t : Tree α) (f : Tree α) : Tree α
|
||
|
||
inductive Subtree : Tree α → Tree α → Prop where
|
||
| left_head (t f : Tree α) : Subtree t (Tree.node t f)
|
||
| right_head (t f : Tree α) : Subtree f (Tree.node t f)
|
||
|
||
def dec_subtree (n m : Tree α) : Decidable (Subtree n m) :=
|
||
match n, m with
|
||
| .leaf, .node t f =>
|
||
let ht := dec_subtree .leaf t
|
||
let hf := dec_subtree .leaf f
|
||
match ht, hf with
|
||
| .isFalse ht, .isFalse hf => .isFalse (fun h =>
|
||
match h with
|
||
| .left_head _ _ => sorry
|
||
| _ => sorry
|
||
)
|
||
| _, _ => sorry
|
||
| _, _ => sorry
|