fact: Definition enumerates (f : nat -> A) (s : A -> Prop) := << RNG: forall i, s (f i) >> /\ << INJ: forall i j (EQ: f i = f j), i = j >> /\ << SUR: forall a (IN: s a), exists i, f i = a >> \/ exists n, << RNG: forall i (LTi: i < n), s (f i) >> /\ << INJ: forall i (LTi: i < n) j (LTj: j < n) (EQ: f i = f j), i = j >> /\ << SUR: forall a (IN: s a), exists i, i < n /\ f i = a >>.
imports: Arith micromega.Lia Setoid IndefiniteDescription ClassicalChoice HahnBase HahnList HahnEquational HahnRewrite HahnRelationsBasic HahnSets HahnNatExtra HahnListBefore HahnWf HahnSorted HahnTotalExt