Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Proof of Theorem 10.1, p. 223 — L(𝒮⁰/𝒢) = K₃ follows from enablement conditions (i), (ii)

Proved
RamadgeWonham.Quotient.thm_10_1_reduction

by mikedeng1 · Sep 27, 2026 · Mathlib 0df444a (Lean v4.33.1)

discrete-event-systemsp2o-batch-p200ap2o-gran-per-chapterp2o-plan-paperp2o-v1supervisory-control

Let G\mathcal GG be a trim generator over a finite alphabet Σ\SigmaΣ with controllable events Σc\Sigma_cΣc​, and let K3⊆L(G)K_3 \subseteq L(\mathcal G)K3​⊆L(G) be nonempty and closed. Let S^0=(X0,Σ,ξ0,x00,X0)\hat S^0 = (X^0, \Sigma, \xi^0, x^0_0, X^0)S^0=(X0,Σ,ξ0,x00​,X0) be a trim recognizer for K3K_3K3​ in which every state is marked, and let S0=(S0,ϕ0)\mathcal S^0 = (S^0, \phi^0)S0=(S0,ϕ0) with S0=(X0,Σ,ξ0,x00,Xm0)S^0 = (X^0, \Sigma, \xi^0, x^0_0, X^0_m)S0=(X0,Σ,ξ0,x00​,Xm0​) for some Xm0⊆X0X^0_m \subseteq X^0Xm0​⊆X0 and ϕ0:X0→{0,1}Σc\phi^0 : X^0 \to \{0,1\}^{\Sigma_c}ϕ0:X0→{0,1}Σc​. Suppose that for all σ∈Σ\sigma \in \Sigmaσ∈Σ and x0∈X0x^0 \in X^0x0∈X0:

  1. if some sss has ξ0(s,x00)=x0\xi^0(s, x^0_0) = x^0ξ0(s,x00​)=x0, sσ∈L(G)s\sigma \in L(\mathcal G)sσ∈L(G) and sσ∉K3s\sigma \notin K_3sσ∈/K3​, then ϕ0(x0)(σ)=0\phi^0(x^0)(\sigma) = 0ϕ0(x0)(σ)=0;
  2. if some sss has ξ0(s,x00)=x0\xi^0(s, x^0_0) = x^0ξ0(s,x00​)=x0 and sσ∈K3s\sigma \in K_3sσ∈K3​, then ϕ0(x0)(σ)=1\phi^0(x^0)(\sigma) = 1ϕ0(x0)(σ)=1.

Then

L(S0/G)=K3.L(\mathcal S^0/\mathcal G) = K_3.L(S0/G)=K3​.

Formalization Note ϕ0(x0)(σ)=0\phi^0(x^0)(\sigma) = 0ϕ0(x0)(σ)=0 is rendered as "σ\sigmaσ is not enabled at x0x^0x0", i.e. σ∈Σc\sigma \in \Sigma_cσ∈Σc​ and ϕ0(x0)(σ)=0\phi^0(x^0)(\sigma) = 0ϕ0(x0)(σ)=0 (uncontrollable events are always enabled, p. 210). The page's "(∀σ,x0)(∃s) A⇒B(\forall \sigma, x^0)(\exists s)\, A \Rightarrow B(∀σ,x0)(∃s)A⇒B" is read as ∀σ,x0:(∃s, A)⇒B\forall \sigma, x^0: (\exists s,\ A) \Rightarrow B∀σ,x0:(∃s, A)⇒B, the form the proof uses.

Preamble
import Mathlib
import Definitions.Def_RamadgeWonham_Quotient_Reduced
import Definitions.Def_RamadgeWonham_Quotient_Recognizer
Formal statement
namespace RamadgeWonham.Quotient

open Shared.Generator

/-- Proof of Theorem 10.1 (p. 223, fourth paragraph), "by the argument used in the proof of
Proposition 5.1": let `K₃ ⊆ L(𝒢)` be nonempty and closed, let `Ŝ⁰ = (X⁰, Σ, ξ⁰, x⁰₀, X⁰)` be a trim
recognizer for `K₃`, and let `𝒮⁰ = (S⁰, φ⁰)` with `S⁰ = (X⁰, Σ, ξ⁰, x⁰₀, X⁰_m)`. If
(i) `(∀σ, x⁰)(∃s) ξ⁰(s, x⁰₀) = x⁰ and sσ ∈ L(𝒢) and sσ ∉ K₃ ⇒ φ⁰(x⁰)(σ) = 0`, and
(ii) `(∀σ, x⁰)(∃s) ξ⁰(s, x⁰₀) = x⁰ and sσ ∈ K₃ ⇒ φ⁰(x⁰)(σ) = 1`, then `L(𝒮⁰/𝒢) = K₃`. -/
theorem thm_10_1_reduction
    {α : Type} [Fintype α] {Ec : Set α} (𝒢 : Shared.Generator α) (h𝒢 : 𝒢.L = Shared.pre 𝒢.Lm)
    (K3 : Set (List α)) (hK3ne : K3.Nonempty) (hK3cl : Shared.pre K3 = K3) (hK3G : K3 ⊆ 𝒢.L)
    (R : Shared.Generator α) (hRrec : IsRecognizer R K3) (hRtrim : R.IsTrim) (hRQm : R.Qm = Set.univ)
    (Xm0 : Set R.Q) (φ0 : R.Q → Ec → Bool)
    (hi : ∀ (σ : α) (x0 : R.Q), (∃ s : List α, R.run s = some x0 ∧ s ++ [σ] ∈ 𝒢.L ∧
        s ++ [σ] ∉ K3) → ¬ (ofRecognizer R Xm0 φ0).enabled x0 σ)
    (hii : ∀ (σ : α) (x0 : R.Q), (∃ s : List α, R.run s = some x0 ∧ s ++ [σ] ∈ K3) →
        (ofRecognizer R Xm0 φ0).enabled x0 σ) :
    Shared.Lsup 𝒢 (ofRecognizer R Xm0 φ0) = K3 := by sorry

end RamadgeWonham.Quotient
Source
Ramadge and Wonham, Supervisory Control of a Class of Discrete Event Processes, SIAM J. Control Optim. 25(1), 1987, p. 223, proof of Theorem 10.1, fourth paragraph, conditions (i), (ii) (by the argument of the proof of Proposition 5.1, p. 215)
Human review
  • Endorsed by Shuze Chen · Oct 1, 2026

    Confirmed by the moderator at approval.

  • Endorsed by mikedeng1 · Oct 1, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me