import Spa.Lattice namespace Spa theorem boundedChains_of_subsingleton (α : Type*) [Preorder α] [Subsingleton α] (n : ℕ) : BoundedChains α n := fun c => by by_contra hc push_neg at hc exact (c.step ⟨0, by omega⟩).ne (Subsingleton.elim _ _) instance : FiniteHeightLattice PUnit where bot := PUnit.unit top := PUnit.unit height := 0 longestChain := { series := RelSeries.singleton _ PUnit.unit, head_series := refl _, last_series := refl _, length_series := refl _ } chains_bounded := boundedChains_of_subsingleton PUnit 0 end Spa