proposition: Lemma subset_lattice : lattice (subtype_set X).
proof: Proof. use make_lattice. - exact intersection_binop. - exact union_binop. - apply make_dirprod; [apply make_dirprod|apply make_dirprod; [apply make_dirprod|apply make_dirprod]]. + apply isassoc_intersection_binop. + apply iscomm_intersection_binop. + apply isassoc_union_binop. + apply iscomm_union_binop. + intros ? ?. apply (invweq (hsubtype_univalence _ _)), subtype_equal_cond. use make_dirprod. * intros ? f; exact (f true). * intros ? ?. intros b; induction b; cbn. -- assumption. -- apply hinhpr; exists true; assumption. + intros ? ?. apply (invweq (hsubtype_univalence _ _)), subtype_equal_cond. use make_dirprod. * intros ? f; cbn in f. refine (hinhuniv _ f); clear f; intro f. induction f as [b bin]; induction b; cbn in bin. -- assumption. -- apply (bin true). * intros ? ?; apply hinhpr; exists true; assumption. Defined.
imports: UniMath.Foundations.Preamble UniMath.Foundations.PartA UniMath.Foundations.Sets UniMath.MoreFoundations.Sets UniMath.MoreFoundations.Propositions UniMath.MoreFoundations.Subtypes UniMath.Algebra.BinaryOperations UniMath.OrderTheory.Lattice.Lattice UniMath.OrderTheory.Lattice.Bounded UniMath.OrderTheory.Lattice.Distributive UniMath.OrderTheory.Lattice.Complement UniMath.OrderTheory.Lattice.Boolean