1-- Classes and proper classes2-- Part of Cumulus, the Grace17 mathematics library.3-- Copyright (c) 2026 Grant Passmore.4-- Released under the Apache License 2.0. See LICENSE in the repository root.5-- Authors: Grant Passmore67module Grace.Cumulus.Set.Classes8import Basic910namespaceClass1112class Universe (x : Set) := { x | x = x }13class Natural (x : Set) :=Nat(x)14class MemberOf (x A : Set) := x ∈ A15class SubsetsOf (A : Class) := { X : Set|∀ x ∈ X, x ∈ A }16class Inhabited (A : Set) :=∃ x, x ∈ A1718def naturalsIn (A : Set) : Set:= { x ∈ A | x ∈ Natural }1920theorem Natural.of_Nat (n : Nat)21shows n ∈ Natural22proof23simp [Natural]2425theorem Universe.membership (x : Set)26shows x ∈ Universe ↔ x = x27proof28simp [Universe]2930theorem MemberOf.characterization (x A : Set)31shows x ∈ MemberOf(A) ↔ x ∈ A32proof33simp [MemberOf]3435theorem SubsetsOf.characterization (X A : Set)36shows X ∈ SubsetsOf(A) ↔ (X ⊆ A)37proof38simp3940theorem SubsetsOf.Universe41shows SubsetsOf(Universe) = Universe42proof43simp4445endClass4647exportopen Grace.Cumulus.Set.Classes.Class48