How can I in coq, prove that a function f that accepts a bool true|false and returns a bool true|false (shown below), when applied twi
f
true|false
Goal forall (f:bool -> bool) (b:bool), f (f (f b)) = f b. Proof. intros. remember (f true) as ft. remember (f false) as ff. destruct ff ; destruct ft ; destruct b ; try rewrite <- Heqft ; try rewrite <- Heqff ; try rewrite <- Heqft ; try rewrite <- Heqff ; auto. Qed.