Documentation

LeanPool.LanguageGeneration.FiniteWitness.Histories

Exhaustive limits of nested finite histories #

@[simp]
theorem GenLimit.FiniteWitness.prefix_toFinset {α : Type u_1} [DecidableEq α] (stream : Generic.Stream α) (t : ℕ) :
(textPrefix stream t).toFinset = Generic.sample stream t
def GenLimit.FiniteWitness.listOutput {α : Type u_1} (G : Generic.Generator α) (xs : List α) :
α

Evaluate an ordered-history generator on a finite list of observations.

Equations
Instances For
    @[simp]
    theorem GenLimit.FiniteWitness.listOutput_prefix {α : Type u_1} (G : Generic.Generator α) (stream : Generic.Stream α) (t : ℕ) :
    listOutput G (textPrefix stream t) = Generic.output G stream t
    def GenLimit.FiniteWitness.EventuallyValid {α : Type u_1} (F : List α → α) (L : Generic.Language α) :

    Eventual target validity of a list-input function; freshness is separate.

    Equations
    Instances For
      def GenLimit.FiniteWitness.Fresh {α : Type u_1} (F : List α → α) :

      A list-input function always returns an element absent from its input.

      Equations
      Instances For
        noncomputable def GenLimit.FiniteWitness.freshRepair {α : Type u_1} [Infinite α] (G : Generic.Generator α) (xs : List α) :
        α

        Replace a previously observed output by a fresh element of the infinite universe.

        Equations
        Instances For
          theorem GenLimit.FiniteWitness.history_prefix_mono {α : Type u_1} {v : ℕ → List α} (hp : ∀ (n : ℕ), v n <+: v (n + 1)) {n m : ℕ} (hnm : n ≤ m) :
          v n <+: v m
          def GenLimit.FiniteWitness.chainStream {α : Type u_1} (v : ℕ → List α) (hlen : ∀ (n : ℕ), n ≤ (v n).length) :

          The stream determined by a nested sequence whose lengths tend to infinity.

          Equations
          Instances For
            theorem GenLimit.FiniteWitness.chainStream_eq_get {α : Type u_1} {v : ℕ → List α} (hp : ∀ (n : ℕ), v n <+: v (n + 1)) (hlen : ∀ (n : ℕ), n ≤ (v n).length) (n k : ℕ) (hk : k < (v n).length) :
            chainStream v hlen k = (v n).get ⟨k, hk⟩
            theorem GenLimit.FiniteWitness.prefix_chainStream {α : Type u_1} {v : ℕ → List α} (hp : ∀ (n : ℕ), v n <+: v (n + 1)) (hlen : ∀ (n : ℕ), n ≤ (v n).length) (n : ℕ) :
            textPrefix (chainStream v hlen) (v n).length = v n
            theorem GenLimit.FiniteWitness.chainStream_presents {α : Type u_1} {v : ℕ → List α} {L : Generic.Language α} (hp : ∀ (n : ℕ), v n <+: v (n + 1)) (hlen : ∀ (n : ℕ), n ≤ (v n).length) (hlegal : ∀ (n : ℕ), ∀ x ∈ v n, x ∈ L) (hexhaust : ∀ x ∈ L, ∃ (n : ℕ), x ∈ v n) :
            theorem GenLimit.FiniteWitness.no_exhaustive_bad_chain {α : Type u_1} {F : List α → α} {L : Generic.Language α} (hvalid : EventuallyValid F L) (v : ℕ → List α) (hp : ∀ (n : ℕ), v n <+: v (n + 1)) (hlen : ∀ (n : ℕ), n ≤ (v n).length) (hlegal : ∀ (n : ℕ), ∀ x ∈ v n, x ∈ L) (hexhaust : ∀ x ∈ L, ∃ (n : ℕ), x ∈ v n) (hbad : ∀ (n : ℕ), F (v (n + 1)) ∉ L) :

            An exhaustive chain cannot have bad outputs at every positive stage.