Proposition cha_not_not_lem {H : complete_heyting_algebra} (x : H) : ¬ ¬(x ∨ ¬ x) = ⊤. Proof. use cha_le_antisymm. - apply cha_le_top. - use cha_to_le_exp. rewrite cha_lunit_min_top. refine (cha_le_trans _ (cha_not_eval (¬ x))). use cha_min_le_case. + use cha_to_le_exp. refine (cha_le_trans _ (cha_exp_eval (x ∨ ¬ x) _)). use cha_and_monotone_r. use cha_max_le_r. + use cha_to_le_exp. refine (cha_le_trans _ (cha_exp_eval (x ∨ ¬ x) _)). use cha_and_monotone_r. use cha_max_le_l. Qed.
Require Import UniMath.MoreFoundations.All. Require Import UniMath.Algebra.BinaryOperations. Require Import UniMath.OrderTheory.Lattice.Lattice. Require Import UniMath.OrderTheory.Lattice.Bounded. Require Import UniMath.OrderTheory.Lattice.Heyting. Require Import UniMath.OrderTheory.Lattice.CompleteHeyting.