SCM.ID.Assumptions
Structural assumptions used by SCM identification results, including monotone Boolean mechanisms and finite Boolean-chain example models.
Monotonicity 15 core · 10 supporting This file defines monotonicity as a restriction on a structural equation itself. ★ monotoneBoolSCM_satisfies★ antitoneBoolSCM_violates
Structural Monotonicity Assumptions
This file defines monotonicity as a restriction on a structural equation itself. The predicate fixes an observed child and one of its parents, then requires the child's structural function to be nondecreasing in that parent coordinate while all other parent coordinates are held fixed.
The file also contains a two-node Boolean SCM used as a sanity check: one model
satisfies the structural restriction and one model violates it. These witnesses
show that the predicate is a genuine constraint on structFun, not a vacuous
edge label.
For a finite population of nodes with measurable ordered value spaces, a child node, a parent node, and a structural causal model, the monotone-mechanism condition holds precisely when the child is observed, the parent is a parent of that child, and for every two parent-value assignments that agree at all other parent coordinates and are ordered at the designated parent coordinate, the child's structural-function value is ordered in the same direction.
Definition (Lean source)
The Boolean-chain node type consists of the treatment node and the outcome node.
Definition (Lean source)
The Boolean-chain edge relation holds for the ordered pair consisting of treatment and outcome , and holds for no other ordered pair of Boolean-chain nodes.
Definition (Lean source)
The Boolean-chain topological ranking assigns rank zero to treatment and rank one to outcome .
Definition (Lean source)
The Boolean-chain directed acyclic graph is the two-node graph whose only directed edge is from treatment to outcome .
Definition (Lean source)
The Boolean-chain single-world intervention graph has random observed treatment and outcome , no fixed nodes, and no unobserved nodes, with the Boolean-chain directed graph.
Definition (Lean source)
The Boolean-chain value-space assignment gives both treatment and outcome the two-point Boolean value space.
Definition (Lean source)
The designated Boolean-chain outcome-parent coordinate is the random treatment node , the sole parent of the random outcome node .
Definition (Lean source)
For an observed node of the Boolean-chain graph, the Boolean copying structural equation returns false at treatment and, at outcome , returns the value assigned to the treatment-parent coordinate.
Definition (Lean source)
For an observed node of the Boolean-chain graph, the Boolean reversing structural equation returns false at treatment and, at outcome , returns the Boolean negation of the value assigned to the treatment-parent coordinate.
Definition (Lean source)
The monotone Boolean structural causal model is the Boolean-chain model with no fixed or latent nodes, nonparametric edge labels, and the copying structural equation.
Definition (Lean source)
The antitone Boolean structural causal model is the Boolean-chain model with no fixed or latent nodes, nonparametric edge labels, and the reversing structural equation.
Definition (Lean source)
For a Boolean value, the Boolean-chain outcome-parent assignment assigns that value to the designated treatment-parent coordinate and false to every other parent coordinate.
Definition (Lean source)
The copying Boolean structural causal model satisfies monotonicity of the outcome mechanism in the designated parent coordinate.
Formal statement
Proof (Lean source)
The reversing Boolean structural causal model violates monotonicity of the outcome mechanism in the designated parent coordinate.
Formal statement
Proof (Lean source)
10 supporting declarations (lemmas, instances)
-
instPreorderSwigΩinstance — For a finite collection of variables whose members can be compared for equality and that have measurable ordered value spaces and each random or fixed copy of a variable, an order on that copy's value space is provided by the order on the corresponding base-variable value space, with the random-copy case and the fixed-copy case treated identically.parameters -
instDecidableEqBoolChainNodeinstancederiving DecidableEq, Repr -
instReprBoolChainNodeinstancederiving DecidableEq, Repr -
instFintypeinstance — A finite enumeration of the Boolean-chain node type is provided by the two-element collection containing treatment and outcome together with the assertion that every Boolean-chain node belongs to that collection.instance -
edgeDecidableinstance — For every ordered pair of Boolean-chain nodes, a decision procedure for whether the pair is a directed edge is provided.instancegiven byby intro a b cases a <;> cases b · exact isFalse (fun h => h) · exact isTrue trivial · exact isFalse (fun h => h) · exact isFalse (fun h => h) -
boolChainMeasurableSpaceinstance — For each Boolean-chain node, the measurable-space structure on its Boolean value space is the discrete measurable space, with the treatment case and the outcome case specified separately.parametersn :instancegiven byclause 1| d => ⊤clause 2| y => ⊤ -
boolChainPreorderinstance — For each Boolean-chain node, the preorder on its Boolean value space is the usual Boolean preorder, with the treatment case and the outcome case specified separately. -
copyStructFun_measurabletheorem — Each structural function of the copy mechanism on the Boolean chain example is measurable.Proof (Lean source)
@[fun_prop] theorem copyStructFun_measurable (v : {v // v ∈ boolChainSWIG.observed}) : Measurable (copyStructFun v) := by rcases v with ⟨n, hn⟩ cases n with | random n => cases n with | d => exact measurable_const | y => exact measurable_pi_apply boolChainDParent | fixed n => cases n <;> simp [boolChainSWIG] at hn -
flipStructFun_measurabletheorem — Each structural function of the flip mechanism on the Boolean chain example is measurable.Proof (Lean source)
@[fun_prop] theorem flipStructFun_measurable (v : {v // v ∈ boolChainSWIG.observed}) : Measurable (flipStructFun v) := by rcases v with ⟨n, hn⟩ cases n with | random n => cases n with | d => exact measurable_const | y => exact (measurable_of_finite (fun b : Bool => !b)).comp (measurable_pi_apply boolChainDParent) | fixed n => cases n <;> simp [boolChainSWIG] at hn -
boolParentAssignment_boolChainDParenttheorem — Evaluating the Boolean parent assignment at the designated parent returns the assigned value.Proof (Lean source)
@[simp] theorem boolParentAssignment_boolChainDParent (b : Bool) : boolParentAssignment b boolChainDParent = b := by cases b <;> rfl