Mechanism.NoisyOr: Noisy-OR Parameterization (V2) #
Migrates the parameter struct from the old Core/Causal/BayesNet.lean
into the new Mechanism framework. A NoisyOrParams describes a single
inhibitory link's parameters: background rate P(C | ¬A) and causal
power P(C | A) − P(C | ¬A).
Phase A scope: only the parameter struct + single-parent mechanism
constructor. Multi-parent noisy-OR (combining n independent links)
is deferred to Phase B+ when consumers need it.
The old BayesNet.WorldState (joint distribution over two binary
variables) is NOT migrated here — it's an output distribution, not a
mechanism. If consumers need it, a separate Core/Causal/Distribution.lean
is the right home.
Noisy-OR parameters for a single inhibitory link. Migrated from
Core.Causal.BayesNet.NoisyOR.
- background : ℚ
Background rate:
P(effect | ¬cause). - power : ℚ
Causal power:
P(effect | cause) − P(effect | ¬cause).
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
P(effect | ¬cause).
Equations
Instances For
Validity: both conditional probabilities lie in [0, 1].
Equations
- n.isValid = (0 ≤ n.background ∧ n.background ≤ 1 ∧ 0 ≤ n.background + n.power ∧ n.background + n.power ≤ 1)
Instances For
Deterministic cause: P(effect|cause) = 1, P(effect|¬cause) = 0.
Equations
- Core.Causal.Mechanism.NoisyOrParams.ofDeterministic = { background := 0, power := 1 }
Instances For
No effect: P(effect|cause) = P(effect|¬cause) = 0.
Equations
- Core.Causal.Mechanism.NoisyOrParams.noEffect = { background := 0, power := 0 }
Instances For
Always-on: P(effect|cause) = P(effect|¬cause) = 1.
Equations
- Core.Causal.Mechanism.NoisyOrParams.alwaysOn = { background := 1, power := 0 }