Skip to content
This repository was archived by the owner on Aug 27, 2026. It is now read-only.

Commit a4240cc

Browse files
committed
Add generic protected observation theorem for frozen stateful transitions
1 parent 22716ab commit a4240cc

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
import verification.wave2_family5.Wave2Family5
2+
3+
universe u v w x y
4+
5+
namespace Wave2Family5
6+
7+
def frozenObserved
8+
{S : Type u} {St : Type v} {O : Type w} {A : Type x}
9+
(transition : S × St → O × St)
10+
(frozenState : St)
11+
(observe : O × St → A)
12+
(input : S) : A :=
13+
observe (transition (input, frozenState))
14+
15+
theorem frozenObserved_cardinality_forces_decisionFailure
16+
{S : Type u} {St : Type v} {O : Type w}
17+
{A : Type x} {C : Type y}
18+
[DecidableEq C]
19+
(transition : S × St → O × St)
20+
(frozenState : St)
21+
(observe : O × St → A)
22+
(encode : S → C)
23+
(states : List S)
24+
(codes : List C)
25+
(hStates : states.Nodup)
26+
(hRange : RangeCovered states codes encode)
27+
(hGap : codes.length < states.length)
28+
(hSeparates :
29+
ActionSeparatesOn states
30+
(frozenObserved transition frozenState observe)) :
31+
∃ s₁ : S,
32+
s₁ ∈ states ∧
33+
∃ s₂ : S,
34+
s₂ ∈ states ∧
35+
s₁ ≠ s₂ ∧
36+
encode s₁ = encode s₂ ∧
37+
frozenObserved transition frozenState observe s₁ ≠
38+
frozenObserved transition frozenState observe s₂ ∧
39+
∀ downstream : C → A,
40+
¬ (
41+
downstream (encode s₁) =
42+
frozenObserved transition frozenState observe s₁ ∧
43+
downstream (encode s₂) =
44+
frozenObserved transition frozenState observe s₂
45+
) := by
46+
obtain ⟨s₁, hs₁, s₂, hs₂, hNe, hCode⟩ :=
47+
finiteList_noninjective_collision
48+
encode states codes hStates hRange hGap
49+
have hObservedNe :
50+
frozenObserved transition frozenState observe s₁ ≠
51+
frozenObserved transition frozenState observe s₂ :=
52+
hSeparates hs₁ hs₂ hNe
53+
exact
54+
⟨s₁, hs₁, s₂, hs₂, hNe, hCode, hObservedNe,
55+
fun downstream =>
56+
decisionRelevantCollision_not_both_correct
57+
encode
58+
(frozenObserved transition frozenState observe)
59+
downstream hCode hObservedNe⟩
60+
61+
end Wave2Family5

0 commit comments

Comments
 (0)