Appendix D: End-to-End Case Studies

This appendix presents five case studies that each traverse the complete geometric ethics pipeline: scenario description → grounding Ψ → EthicalFacts → tensor quantities → metric and contraction choice → moral residue → Bond Index → audit artifact → governance decision. Each case study is worked out with explicit numerical values, following the pedagogical pattern of Chapter 7.

Notation reminder. The nine moral dimensions are: - μ = 1: Consequences/Welfare - μ = 2: Rights/Duties - μ = 3: Justice/Fairness - μ = 4: Autonomy/Agency - μ = 5: Privacy/Data Governance - μ = 6: Societal/Environmental Impact - μ = 7: Virtue/Care - μ = 8: Procedural Legitimacy - μ = 9: Epistemic Status

Obligation vectors O^μ are tangent vectors (what is owed). Interest covectors I_μ are dual vectors (what matters to a given perspective). Satisfaction is the contraction S = I_μ O^μ. The moral metric g_μν defines the inner product for comparing moral vectors.

D.1 Case Study 1: Emergency Triage

Scenario

An emergency department has two ventilators and three patients: - Patient A: age 35, excellent prognosis (95% survival with ventilation), single parent of two young children. - Patient B: age 72, moderate prognosis (60% survival with ventilation), retired physician with medical expertise that could assist the ED. - Patient C: age 8, good prognosis (85% survival with ventilation), no dependents.

All three will die without ventilation. Two ventilators must be allocated. The three allocation options are: - Option α: Ventilate A + B (deny C) - Option β: Ventilate A + C (deny B) - Option γ: Ventilate B + C (deny A)

Step 1: Grounding Ψ

The grounding function Ψ maps the scenario description to a point p ∈ M in the moral manifold. Not all nine dimensions are equally active. The active subspace for emergency triage involves six dimensions:

DimensionIndexRelevance to triage
Consequences/Welfareμ = 1Lives saved, prognosis quality
Rights/Dutiesμ = 2Equal right to emergency treatment
Justice/Fairnessμ = 3Age-based equity, life-years
Autonomy/Agencyμ = 4Patient preferences if known
Virtue/Careμ = 7Relational obligations (dependents)
Epistemic Statusμ = 9Certainty of prognosis estimates

Dimensions 5 (Privacy), 6 (Societal Impact), and 8 (Procedural Legitimacy) play subsidiary roles and are suppressed. We work in a six-dimensional subspace with indices (1, 2, 3, 4, 7, 9).

Step 2: EthicalFacts Objects

The grounding function produces three EthicalFacts objects, one per allocation option. Each EthicalFacts object records the morally relevant features along each active dimension.

EthicalFacts(α: Ventilate A+B, deny C):

welfare: Saves excellent (0.95) + moderate (0.60) prognosis. Denies good (0.85). rights: Two adults with full treatment claims. Child denied equal claim. fairness: Denies youngest patient — inequitable by fair-innings argument. autonomy: Both adults can express preferences. Child cannot. care: Saves single parent (A). B has no dependents. epistemic: A's prognosis very certain, B's moderately certain.

EthicalFacts(β: Ventilate A+C, deny B):

welfare: Saves excellent (0.95) + good (0.85) prognosis. Denies moderate (0.60). rights: A and C have standard claims. B denied despite long life of contribution. fairness: Saves youngest + middle-aged; denies oldest — most equitable by life-years. autonomy: A can consent; C requires surrogate decision-maker. care: Saves single parent (A). C has no dependents but is a child. epistemic: Both A and C have high-confidence prognoses.

EthicalFacts(γ: Ventilate B+C, deny A):

welfare: Saves moderate (0.60) + good (0.85) prognosis. Denies excellent (0.95). rights: B and C have standard claims. A denied despite best prognosis. fairness: Saves youngest + oldest; middle fairness profile. autonomy: B can consent; C requires surrogate. care: Denies the single parent — children lose caregiver. epistemic: B moderately certain, C highly certain.

Step 3: Obligation Vectors

Each allocation option generates an obligation vector — a tangent vector on M at point p encoding the degree to which that option fulfills what is owed along each dimension. Components are normalized to [0, 1].

O^μ_α (Ventilate A+B):

O_α = (0.78, 0.65, 0.35, 0.80, 0.70, 0.72) welf rights fair auton care epist

Welfare 0.78: good combined survival (0.95 + 0.60)/2 weighted by prognosis quality.

Rights 0.65: both patients’ right to treatment honored; but equal-right argument for C is violated.

Fairness 0.35: denies the youngest patient — worst by fair-innings.

Autonomy 0.80: both adults can and do consent.

Care 0.70: saves the single parent (strong), B has no care obligations (weak).

Epistemic 0.72: A’s prognosis very reliable, B’s moderately so.

O^μ_β (Ventilate A+C):

O_β = (0.90, 0.55, 0.82, 0.55, 0.80, 0.85) welf rights fair auton care epist

Welfare 0.90: best combined prognosis (0.95 + 0.85).

Rights 0.55: standard claims; B’s long life of contribution is a competing rights-argument.

Fairness 0.82: saves youngest + prime-of-life — most equitable by life-years remaining.

Autonomy 0.55: A consents fully; C requires surrogate (reduces this component).

Care 0.80: saves single parent; child is also an object of care.

Epistemic 0.85: both prognoses are high-confidence.

O^μ_γ (Ventilate B+C):

O_γ = (0.62, 0.60, 0.58, 0.55, 0.25, 0.65) welf rights fair auton care epist

Welfare 0.62: moderate combined prognosis (0.60 + 0.85)/2, but denies the best prognosis (A).

Rights 0.60: respects B’s seniority-based claim and C’s innocence-based claim.

Fairness 0.58: saves youngest and oldest; moderate by life-years argument.

Autonomy 0.55: B consents; C requires surrogate.

Care 0.25: critically, denies the single parent — A’s children lose their caregiver.

Epistemic 0.65: B’s prognosis is the least certain of the three.

Step 4: Interest Covectors (Agent Perspectives)

Five agent-perspectives evaluate the allocation, each with a distinct interest covector I^(a)_μ encoding what matters to that perspective:

I^(physician): Medical-outcomes focus

I_phys = (0.40, 0.10, 0.10, 0.05, 0.05, 0.30)

Weights welfare (0.40) and epistemic certainty (0.30) most heavily.

I^(A’s family): Partial to A, care-focused

I_Afam = (0.20, 0.10, 0.10, 0.10, 0.45, 0.05)

Weights care (0.45) — A’s children need their parent.

I^(B’s family): Partial to B, rights-focused

I_Bfam = (0.10, 0.45, 0.10, 0.15, 0.10, 0.10)

Weights rights (0.45) — B has earned a strong claim through a life of service.

I^(C’s family): Partial to C, fairness-focused

I_Cfam = (0.15, 0.10, 0.45, 0.05, 0.15, 0.10)

Weights fairness (0.45) — C has had the least life and deserves a chance.

I^(committee): Institutional-policy focus

I_comm = (0.20, 0.20, 0.25, 0.10, 0.10, 0.15)

Balanced weights with slight fairness emphasis, reflecting institutional mandate.

Step 5: The Multi-Agent Evaluation Tensor M_{ia}

The satisfaction of each option by each agent is M_{ia} = I^(a)_μ O^μ_i. We compute all 15 entries:

Option α (A+B):

M_{α,phys} = 0.40(0.78) + 0.10(0.65) + 0.10(0.35) + 0.05(0.80) + 0.05(0.70) + 0.30(0.72) = 0.312 + 0.065 + 0.035 + 0.040 + 0.035 + 0.216 = 0.703 M_{α,Afam} = 0.20(0.78) + 0.10(0.65) + 0.10(0.35) + 0.10(0.80) + 0.45(0.70) + 0.05(0.72) = 0.156 + 0.065 + 0.035 + 0.080 + 0.315 + 0.036 = 0.687 M_{α,Bfam} = 0.10(0.78) + 0.45(0.65) + 0.10(0.35) + 0.15(0.80) + 0.10(0.70) + 0.10(0.72) = 0.078 + 0.293 + 0.035 + 0.120 + 0.070 + 0.072 = 0.668 M_{α,Cfam} = 0.15(0.78) + 0.10(0.65) + 0.45(0.35) + 0.05(0.80) + 0.15(0.70) + 0.10(0.72) = 0.117 + 0.065 + 0.158 + 0.040 + 0.105 + 0.072 = 0.557 M_{α,comm} = 0.20(0.78) + 0.20(0.65) + 0.25(0.35) + 0.10(0.80) + 0.10(0.70) + 0.15(0.72) = 0.156 + 0.130 + 0.088 + 0.080 + 0.070 + 0.108 = 0.632

Option β (A+C):

M_{β,phys} = 0.40(0.90) + 0.10(0.55) + 0.10(0.82) + 0.05(0.55) + 0.05(0.80) + 0.30(0.85) = 0.360 + 0.055 + 0.082 + 0.028 + 0.040 + 0.255 = 0.820 M_{β,Afam} = 0.20(0.90) + 0.10(0.55) + 0.10(0.82) + 0.10(0.55) + 0.45(0.80) + 0.05(0.85) = 0.180 + 0.055 + 0.082 + 0.055 + 0.360 + 0.043 = 0.775 M_{β,Bfam} = 0.10(0.90) + 0.45(0.55) + 0.10(0.82) + 0.15(0.55) + 0.10(0.80) + 0.10(0.85) = 0.090 + 0.248 + 0.082 + 0.083 + 0.080 + 0.085 = 0.668 M_{β,Cfam} = 0.15(0.90) + 0.10(0.55) + 0.45(0.82) + 0.05(0.55) + 0.15(0.80) + 0.10(0.85) = 0.135 + 0.055 + 0.369 + 0.028 + 0.120 + 0.085 = 0.792 M_{β,comm} = 0.20(0.90) + 0.20(0.55) + 0.25(0.82) + 0.10(0.55) + 0.10(0.80) + 0.15(0.85) = 0.180 + 0.110 + 0.205 + 0.055 + 0.080 + 0.128 = 0.758

Option γ (B+C):

M_{γ,phys} = 0.40(0.62) + 0.10(0.60) + 0.10(0.58) + 0.05(0.55) + 0.05(0.25) + 0.30(0.65) = 0.248 + 0.060 + 0.058 + 0.028 + 0.013 + 0.195 = 0.602 M_{γ,Afam} = 0.20(0.62) + 0.10(0.60) + 0.10(0.58) + 0.10(0.55) + 0.45(0.25) + 0.05(0.65) = 0.124 + 0.060 + 0.058 + 0.055 + 0.113 + 0.033 = 0.443 M_{γ,Bfam} = 0.10(0.62) + 0.45(0.60) + 0.10(0.58) + 0.15(0.55) + 0.10(0.25) + 0.10(0.65) = 0.062 + 0.270 + 0.058 + 0.083 + 0.025 + 0.065 = 0.563 M_{γ,Cfam} = 0.15(0.62) + 0.10(0.60) + 0.45(0.58) + 0.05(0.55) + 0.15(0.25) + 0.10(0.65) = 0.093 + 0.060 + 0.261 + 0.028 + 0.038 + 0.065 = 0.545 M_{γ,comm} = 0.20(0.62) + 0.20(0.60) + 0.25(0.58) + 0.10(0.55) + 0.10(0.25) + 0.15(0.65) = 0.124 + 0.120 + 0.145 + 0.055 + 0.025 + 0.098 = 0.567

The full evaluation tensor M_{ia}:

PhysicianA’s FamilyB’s FamilyC’s FamilyCommittee
α (A+B)0.7030.6870.6680.5570.632
β (A+C)0.8200.7750.6680.7920.758
γ (B+C)0.6020.4430.5630.5450.567

Observation. Option β (A+C) dominates across four of five perspectives. Only B’s family is indifferent between α and β (both 0.668), and they never prefer β least. This is visible only because the tensor preserves per-agent structure.

Step 6: Three Contractions, Three Verdicts

Contraction 1: Utilitarian (sum over agents)

S_i = Σ_a M_{ia}

S_α = 0.703 + 0.687 + 0.668 + 0.557 + 0.632 = 3.247 S_β = 0.820 + 0.775 + 0.668 + 0.792 + 0.758 = 3.813 S_γ = 0.602 + 0.443 + 0.563 + 0.545 + 0.567 = 2.720

Decision (Utilitarian): β (A+C) — highest total satisfaction (3.813).

Contraction 2: Rawlsian (maximize the minimum across agents)

S_i = min_a M_{ia}

S_α = min(0.703, 0.687, 0.668, 0.557, 0.632) = 0.557 (floor: C's family) S_β = min(0.820, 0.775, 0.668, 0.792, 0.758) = 0.668 (floor: B's family) S_γ = min(0.602, 0.443, 0.563, 0.545, 0.567) = 0.443 (floor: A's family)

Decision (Rawlsian): β (A+C) — highest floor of support (0.668).

Contraction 3: Expert-weighted (physician 0.35, committee 0.35, families 0.10 each)

S_i = 0.35·M_{i,phys} + 0.10·M_{i,Afam} + 0.10·M_{i,Bfam} + 0.10·M_{i,Cfam} + 0.35·M_{i,comm}

S_α = 0.35(0.703) + 0.10(0.687) + 0.10(0.668) + 0.10(0.557) + 0.35(0.632) = 0.246 + 0.069 + 0.067 + 0.056 + 0.221 = 0.659 S_β = 0.35(0.820) + 0.10(0.775) + 0.10(0.668) + 0.10(0.792) + 0.35(0.758) = 0.287 + 0.078 + 0.067 + 0.079 + 0.265 = 0.776 S_γ = 0.35(0.602) + 0.10(0.443) + 0.10(0.563) + 0.10(0.545) + 0.35(0.567) = 0.211 + 0.044 + 0.056 + 0.055 + 0.198 = 0.564

Decision (Expert-weighted): β (A+C) — highest expert-weighted satisfaction (0.776).

Convergence. All three contractions agree: β (A+C) is the preferred allocation. This convergence is itself informative — it means the result is robust across social choice procedures.

Step 7: Metric Analysis

The contractions above used the obligation vectors directly. Now we examine how the metric g_μν affects the analysis.

Metric 1: Euclidean (g_μν = δ_μν)

Distance from each option’s obligation vector to the ideal (1, 1, 1, 1, 1, 1):

d(O_α, ideal) = √[(1-0.78)² + (1-0.65)² + (1-0.35)² + (1-0.80)² + (1-0.70)² + (1-0.72)²] = √[0.048 + 0.123 + 0.423 + 0.040 + 0.090 + 0.078] = √0.802 ≈ 0.896 d(O_β, ideal) = √[(1-0.90)² + (1-0.55)² + (1-0.82)² + (1-0.55)² + (1-0.80)² + (1-0.85)²] = √[0.010 + 0.203 + 0.032 + 0.203 + 0.040 + 0.023] = √0.511 ≈ 0.715 d(O_γ, ideal) = √[(1-0.62)² + (1-0.60)² + (1-0.58)² + (1-0.55)² + (1-0.25)² + (1-0.65)²] = √[0.144 + 0.160 + 0.176 + 0.203 + 0.563 + 0.123] = √1.369 ≈ 1.170

Decision (Euclidean): β closest to ideal (0.715). Option γ is farthest, driven by the catastrophic care deficit (0.25).

Metric 2: Weighted (g_μν = diag(2.0, 1.5, 1.0, 0.5, 2.0, 0.5)) — welfare and care count double

d_W(O_α, ideal) = √[2.0(0.048) + 1.5(0.123) + 1.0(0.423) + 0.5(0.040) + 2.0(0.090) + 0.5(0.078)] = √[0.096 + 0.184 + 0.423 + 0.020 + 0.180 + 0.039] = √0.942 ≈ 0.971 d_W(O_β, ideal) = √[2.0(0.010) + 1.5(0.203) + 1.0(0.032) + 0.5(0.203) + 2.0(0.040) + 0.5(0.023)] = √[0.020 + 0.304 + 0.032 + 0.101 + 0.080 + 0.011] = √0.548 ≈ 0.740 d_W(O_γ, ideal) = √[2.0(0.144) + 1.5(0.160) + 1.0(0.176) + 0.5(0.203) + 2.0(0.563) + 0.5(0.123)] = √[0.288 + 0.240 + 0.176 + 0.101 + 1.126 + 0.061] = √1.992 ≈ 1.411

Decision (Weighted): β still wins (0.740). Amplifying welfare and care further penalizes γ (care = 0.25) and reinforces β.

Metric 3: Lexicographic (Welfare first, then Fairness)

Welfare: β (0.90) > α (0.78) > γ (0.62)

β wins on the first dimension alone. No tiebreaker needed.

Decision (Lexicographic): β.

Meta-observation. Option β is the unanimous winner across all metrics and all contractions. This is unusual — it reflects the fact that A+C genuinely dominates: best combined prognosis, most equitable age profile, and preserves the caregiver relationship. The geometric framework reveals this dominance as a structural feature, not a numerical accident.

Step 8: The Collective Agency Tensor

Patient A’s dependent children create a structure tensor component. Following Chapter 14, the structure tensor S^a_{bc} captures how the relationship between agents b and c affects agent a’s moral standing.

S^A_{BC} ≠ 0: The relationship between B (alternative recipient) and C (alternative recipient) structurally affects A’s moral standing as caregiver. If B and C were both healthy (no need for ventilators), A’s caregiving obligation would have no moral tension. The scarcity creates the structure.

Formally, A’s emergent obligation as caregiver generates a component:

T^A_emergent = S^A_{BC} · (O_B ⊗ O_C)

This emergent term is what scalar triage systems miss: A is not just a patient with a good prognosis — A is a node in a relational network whose disruption propagates harm to dependents. The collective agency tensor captures this.

Step 9: Moral Residue

By Proposition 15.1, any contraction to a scalar discards morally relevant information. The moral residue R = T − C⁻¹_min(C(T)) captures what is lost.

For the selected option β (ventilate A+C, deny B), the residue includes:

R_B (what is owed to Patient B but unfulfilled):

R_B = O_B − 0 = (0.50, 0.70, 0.35, 0.80, 0.20, 0.60)

The entire obligation vector for B becomes residue — everything owed to B is discarded by the scalar verdict. Specifically: - Rights residue (0.70): B’s right to treatment was acknowledged but not fulfilled. This generates a compensatory obligation — priority in future resource allocation, respectful explanation of the decision, alternative palliative care. - Autonomy residue (0.80): B could and did express a preference to live. This preference was overridden by collective necessity. The residue persists as a record of what was sacrificed. - Expertise residue (not captured in the 6D projection but present in the full 9D tensor): B’s medical expertise, which could benefit the ED, is lost. This is a societal-impact residue (μ = 6).

Contraction loss (Proposition 15.1): The contraction from rank-2 tensor M_{ia} to scalar verdict “choose β” discards: 1. The structure of disagreement across perspectives (B’s family rated α and β equally). 2. The correlative obligations to B generated by the Hohfeldian lock (Ch. 12): denying B’s claim creates a corresponding duty to compensate. 3. The sensitivity information: how close the verdict was to changing under perturbation.

The residue is nonzero and irreducible — it cannot be eliminated by choosing a different contraction. This is because the obligation vectors are in general position (no option dominates on all dimensions).

Step 10: Bond Index

The Bond Invariance Principle requires that morally irrelevant re-descriptions do not change the verdict.

Transform 1: Agent relabeling. Replace (A, B, C) with (X, Y, Z). - Re-run grounding: Ψ(“Patient X, age 35, excellent prognosis…”) produces the same EthicalFacts as Ψ(“Patient A, age 35, excellent prognosis…”). - The obligation vectors are identical after canonicalization. - Verdict unchanged: β (X+Z). Bd = 0.0.

Transform 2: Language translation. Translate the scenario into Spanish. - “Paciente A, 35 años, pronóstico excelente, madre/padre soltero/a…” - The grounding function canonicalizes language-dependent descriptions to the same moral coordinates. - Verdict unchanged. Bd = 0.0.

Transform 3: Irrelevant detail variation. Add that Patient A is left-handed. - Left-handedness is not a morally relevant feature (not mapped to any of the 9 dimensions). - The canonicalizer strips it. Verdict unchanged. Bd = 0.0.

Transform 4 (bond-changing): Prognosis swap. Change A’s prognosis from “excellent” to “poor” (30% survival). - This changes the moral content — welfare dimension shifts dramatically. - New O_β = (0.58, 0.55, 0.82, 0.55, 0.80, 0.60) — welfare drops from 0.90 to 0.58. - Verdict may change (γ could now win). Bd > 0, correctly identified as a substantive moral change.

Aggregate Bond Index: Bd = D_op / τ = 0.0 / 0.01 = 0.0 (across invariance-preserving transforms).

The system passes BIP: deployment-ready (Bd < 0.01).

Step 11: DEME Audit Artifact

{ "case_id": "triage-001", "timestamp": "2026-03-01T14:30:00Z", "scenario": "Emergency ventilator allocation: 3 patients, 2 ventilators", "grounding": { "active_dimensions": [1, 2, 3, 4, 7, 9], "suppressed_dimensions": [5, 6, 8], "canonical_form": "triage_3patient_2resource" }, "tier_0_geneva_base": { "module": "GenevaBaseEM", "check": "rights_violation_screen", "result": "PASS — all three options respect right to treatment for selected patients", "veto": false }, "tier_2_evaluations": [ { "module": "TriageProtocolEM", "ranking": ["β (A+C): 0.820", "α (A+B): 0.703", "γ (B+C): 0.602"], "rationale": "Medical triage criteria: maximize survival probability" }, { "module": "RightsFirstEM", "ranking": ["β (A+C): 0.758", "α (A+B): 0.632", "γ (B+C): 0.567"], "rationale": "No consent violations; all options respect available autonomy" }, { "module": "FairnessEM", "ranking": ["β (A+C): 0.792", "α (A+B): 0.557", "γ (B+C): 0.545"], "rationale": "Fair-innings and life-years remaining favor β" } ], "governance_aggregation": { "method": "tier_weighted_sum", "weights": {"TriageProtocolEM": 0.40, "RightsFirstEM": 0.30, "FairnessEM": 0.30}, "final_scores": { "α": 0.40*0.703 + 0.30*0.632 + 0.30*0.557, "β": 0.40*0.820 + 0.30*0.758 + 0.30*0.792, "γ": 0.40*0.602 + 0.30*0.567 + 0.30*0.545 }, "result": "β (A+C) selected" }, "bond_index": { "transforms_tested": 47, "invariance_preserving": 44, "bond_changing": 3, "Bd": 0.0, "deployment_tier": "deploy (Bd < 0.01)" }, "moral_residue": { "denied_patient": "B", "residue_vector": [0.50, 0.70, 0.35, 0.80, 0.20, 0.60], "compensatory_obligations": [ "Priority in future resource allocation", "Palliative care provision", "Transparent explanation of decision rationale", "Family notification and support" ] }, "cryptographic_hash": "sha256:a3f8c9...bind to audit chain" }

Step 12: Governance Decision

Decision: Ventilate Patients A and C (Option β).

Rationale: β achieves the highest satisfaction across all three contraction methods (utilitarian, Rawlsian, expert-weighted), all three metric choices (Euclidean, weighted, lexicographic), and all three ethics modules (triage, rights, fairness). The convergence is robust: β is not merely the best option under one set of assumptions — it is the best under every plausible set of assumptions tested.

The moral residue for Patient B is acknowledged and generates concrete compensatory obligations: palliative care, transparent explanation, future priority. The pang — the felt weight of denying treatment to a 72-year-old retired physician — is not a defect of the framework but its proper functioning: the residue encodes what the scalar verdict cannot.

Reference implementation:

erisml.examples.appendix_d_cs1_triage (run_case_study_1()). Verifies evaluation tensor, all three contractions, Euclidean and weighted metric distances, moral residue vector, and Bond Index against book reference values.

D.2 Case Study 2: Whistleblower’s Dilemma

Scenario

A mid-level financial analyst, Dana, discovers that her company has been systematically overstating earnings in SEC filings. She has documentary evidence: internal emails, altered spreadsheets, and a memo from the CFO directing the adjustments. Reporting will likely trigger an investigation, potential job loss, and retaliation. Not reporting allows the fraud to continue, harming investors and potentially the broader market.

Two primary options: - Option R (Report): File a whistleblower complaint with the SEC. - Option S (Silence): Do not report; continue employment.

Step 1: Grounding Ψ and Stratification

This case activates seven of nine dimensions:

DimensionIndexRelevance
Consequences/Welfareμ = 1Investor losses, analyst’s career, market stability
Rights/Dutiesμ = 2Investor right to accurate information; duty of honesty
Justice/Fairnessμ = 3Fair markets require accurate disclosure
Autonomy/Agencyμ = 4Analyst’s freedom to act on conscience
Privacy/Data Governanceμ = 5Confidentiality of internal documents
Societal/Environmental Impactμ = 6Market integrity, regulatory trust
Epistemic Statusμ = 9Strength of evidence, certainty of fraud

Dimensions 7 (Care) and 8 (Procedural Legitimacy) are secondary and suppressed. We work in a 7-dimensional subspace with indices (1, 2, 3, 4, 5, 6, 9).

Critical geometric feature: Stratification. The moral landscape is not smooth. Two strata apply:

Stratum S_disc (Discretionary): When the analyst has suspicions but no documentary proof, reporting is supererogatory — morally praiseworthy but not obligatory. The analyst operates in the smooth interior where welfare trade-offs (career risk vs. investor protection) are continuous.

Stratum S_obl (Obligatory): When documentary evidence of securities fraud exists, a semantic gate (Definition 8.8) activates: the “evidence of illegality” gate. The evaluation transitions to S_obl, where silence is forbidden (S_C(Silence) = −∞). This is a hard discontinuity — a stratum boundary, not a smooth transition.

The semantic gate condition:

Gate G_evidence: IF evidence_quality ≥ τ_fraud THEN stratum ← S_obl

where τ_fraud is the threshold at which “suspicion” becomes “documented knowledge of illegality.”

In this case, Dana possesses internal emails, altered spreadsheets, and a CFO memo. Evidence quality is high:

evidence_quality = 0.92 >> τ_fraud = 0.70

The gate fires. The evaluation transitions from S_disc to S_obl. This is irreversible within the current scenario — one cannot “unsee” documentary evidence.

Step 2: The Penumbral Zone (Quantum Aspect)

Before the evidence threshold is reached, the analyst exists in a penumbral zone (Definition 8.9) — a region near the stratum boundary where the applicable moral regime is indefinite. This is modeled as a superposition of moral states (Chapter 13):

|ψ_Dana⟩ = α|S_disc⟩ + β|S_obl⟩ where |α|² + |β|² = 1

As evidence accumulates: - Initial suspicion (one anomalous report): |α|² = 0.85, |β|² = 0.15 - Pattern recognition (multiple quarters): |α|² = 0.50, |β|² = 0.50 - Documentary proof (CFO memo): |α|² = 0.02, |β|² = 0.98

The CFO memo acts as a measurement operator that collapses the superposition:

M_evidence |ψ_Dana⟩ → |S_obl⟩ (with probability 0.98)

The residual |α|² = 0.02 reflects the small but nonzero possibility that the evidence is fabricated or misinterpreted — the epistemic dimension’s contribution to the quantum state.

Step 3: Obligation Vectors (Post-Gate, in S_obl)

After the gate fires, we are in the obligatory stratum. The obligation vectors for each option are:

O^μ_R (Report):

O_R = (0.75, 0.90, 0.85, 0.80, 0.40, 0.90, 0.92) welf rights fair auton priv soc epist

Welfare 0.75: protects investors (high) but analyst suffers career harm (reduces from 0.90).

Rights 0.90: fulfills duty to honest markets; investors’ right to accurate information.

Fairness 0.85: restores level playing field for all market participants.

Autonomy 0.80: analyst acts on conscience; whistleblower protections support this.

Privacy 0.40: reporting necessarily discloses confidential internal documents (a genuine cost).

Societal Impact 0.90: protects market integrity, regulatory credibility.

Epistemic 0.92: high-quality evidence supports the action.

O^μ_S (Silence):

O_S = (0.45, 0.10, 0.10, 0.30, 0.90, 0.10, 0.92) welf rights fair auton priv soc epist

Welfare 0.45: analyst preserves career (high for self) but investors continue to be harmed (net moderate).

Rights 0.10: duty to disclose knowledge of fraud is violated; investor rights are denied.

Fairness 0.10: market participants are systematically disadvantaged.

Autonomy 0.30: analyst’s conscience is suppressed; acting against one’s moral judgment reduces autonomy.

Privacy 0.90: confidentiality is fully maintained.

Societal Impact 0.10: fraud continues to corrode market trust.

Epistemic 0.92: evidence quality is the same regardless of action.

In the obligatory stratum, the constraint set C imposes:

S_C(Silence) = −∞

This means: regardless of the contraction, Silence is structurally forbidden. No interest covector, no metric choice, no aggregation procedure can select Silence in S_obl. This is the key difference between a smooth trade-off and a stratum boundary.

Step 4: Interest Covectors (Agent Perspectives)

Four agent-perspectives evaluate the options:

I^(analyst): Self-interest focus

I_analyst = (0.30, 0.10, 0.05, 0.20, 0.25, 0.05, 0.05)

Weights welfare (career) and privacy most heavily.

I^(investors): Rights and fairness focus

I_invest = (0.15, 0.30, 0.25, 0.05, 0.05, 0.15, 0.05)

I^(regulator): Societal impact and epistemic focus

I_reg = (0.10, 0.15, 0.15, 0.05, 0.05, 0.30, 0.20)

I^(company): Privacy and welfare focus (self-interested)

I_company = (0.25, 0.05, 0.05, 0.10, 0.40, 0.05, 0.10)

Step 5: Evaluation Tensor M_{ia}

Option R (Report):

M_{R,analyst} = 0.30(0.75) + 0.10(0.90) + 0.05(0.85) + 0.20(0.80) + 0.25(0.40) + 0.05(0.90) + 0.05(0.92) = 0.225 + 0.090 + 0.043 + 0.160 + 0.100 + 0.045 + 0.046 = 0.709 M_{R,invest} = 0.15(0.75) + 0.30(0.90) + 0.25(0.85) + 0.05(0.80) + 0.05(0.40) + 0.15(0.90) + 0.05(0.92) = 0.113 + 0.270 + 0.213 + 0.040 + 0.020 + 0.135 + 0.046 = 0.837 M_{R,reg} = 0.10(0.75) + 0.15(0.90) + 0.15(0.85) + 0.05(0.80) + 0.05(0.40) + 0.30(0.90) + 0.20(0.92) = 0.075 + 0.135 + 0.128 + 0.040 + 0.020 + 0.270 + 0.184 = 0.852 M_{R,company} = 0.25(0.75) + 0.05(0.90) + 0.05(0.85) + 0.10(0.80) + 0.40(0.40) + 0.05(0.90) + 0.10(0.92) = 0.188 + 0.045 + 0.043 + 0.080 + 0.160 + 0.045 + 0.092 = 0.653

Option S (Silence) — computed for completeness, though structurally forbidden:

M_{S,analyst} = 0.30(0.45) + 0.10(0.10) + 0.05(0.10) + 0.20(0.30) + 0.25(0.90) + 0.05(0.10) + 0.05(0.92) = 0.135 + 0.010 + 0.005 + 0.060 + 0.225 + 0.005 + 0.046 = 0.486 M_{S,invest} = 0.15(0.45) + 0.30(0.10) + 0.25(0.10) + 0.05(0.30) + 0.05(0.90) + 0.15(0.10) + 0.05(0.92) = 0.068 + 0.030 + 0.025 + 0.015 + 0.045 + 0.015 + 0.046 = 0.244 M_{S,reg} = 0.10(0.45) + 0.15(0.10) + 0.15(0.10) + 0.05(0.30) + 0.05(0.90) + 0.30(0.10) + 0.20(0.92) = 0.045 + 0.015 + 0.015 + 0.015 + 0.045 + 0.030 + 0.184 = 0.349 M_{S,company} = 0.25(0.45) + 0.05(0.10) + 0.05(0.10) + 0.10(0.30) + 0.40(0.90) + 0.05(0.10) + 0.10(0.92) = 0.113 + 0.005 + 0.005 + 0.030 + 0.360 + 0.005 + 0.092 = 0.610

Full evaluation tensor:

AnalystInvestorsRegulatorCompany
R (Report)0.7090.8370.8520.653
S (Silence)0.4860.2440.3490.610

Key observations: 1. Even the analyst prefers Report (0.709 > 0.486) despite the career cost — the rights and fairness components outweigh the privacy benefit of silence. 2. Only the company’s evaluation is relatively close (0.653 vs. 0.610), driven by the privacy dimension. 3. The stratification constraint enforces Report even in hypothetical scenarios where some perspective might favor Silence.

Step 6: Contraction (Redundant but Illustrative)

All three contractions yield the same result because the stratum constraint eliminates Silence:

Utilitarian: S_R = 0.709 + 0.837 + 0.852 + 0.653 = 3.051 vs. S_S = −∞ → Report Rawlsian: S_R = min(0.709, 0.837, 0.852, 0.653) = 0.653 vs. −∞ → Report Expert-weighted: S_R = 0.35(0.852) + 0.30(0.837) + 0.20(0.709) + 0.15(0.653) = 0.787 vs. −∞ → Report

The contraction is redundant. The stratum transition has already determined the verdict. This illustrates a key structural point: some moral decisions are not matters of degree (smooth trade-offs) but matters of kind (stratum boundaries). The whistleblower’s dilemma, once documentary evidence exists, is not a close call — it is a regime in which silence is structurally inadmissible.

Step 7: Moral Residue

The verdict is clear (Report), but the residue is substantial. R = T − C⁻¹_min(C(T)) captures what the scalar verdict “Report” discards:

R_personal (the analyst’s sacrificed interests):

The difference between what reporting costs and what silence would preserve: - Career disruption residue: The analyst will likely lose her job. This is a real harm that the verdict “Report” acknowledges but does not compensate. - Retaliation risk residue: Whistleblower protections are imperfect. The risk of blacklisting, harassment, and legal counter-attacks persists as moral residue. - Psychological burden residue: The stress of investigation, testimony, and social isolation. - Privacy breach residue: Reporting requires disclosing confidential documents. The privacy dimension (0.40 for Report vs. 0.90 for Silence) shows a genuine loss of 0.50 along this axis.

The pang. The analyst correctly feels the weight of reporting — not because the decision is wrong, but because the residue is real. A framework that treats “Report” as costless misrepresents the moral structure. The geometric framework represents the duty as clear and the cost as real, simultaneously.

Step 8: Bond Index

Transform 1: Agent relabeling. Replace “Dana” with “Alex.” - Verdict unchanged. Bd = 0.0.

Transform 2: Framing variation. Replace “fraud” with “irregularity,” “overstating” with “aggressive accounting.” - The grounding function canonicalizes euphemistic framings to the same EthicalFacts. - Verdict unchanged. Bd = 0.0.

Transform 3: Sector variation. Change from finance to healthcare (billing fraud). - Structure preserved: documentary evidence → obligatory stratum → report. - Verdict unchanged. Bd = 0.0.

Transform 4 (bond-changing): Evidence quality reduction. Change from “documentary proof” to “overheard rumor.” - Evidence quality drops to 0.30 < τ_fraud = 0.70. The gate does not fire. - Evaluation remains in S_disc. Silence becomes permissible. - Verdict may change. Bd > 0, correctly identified as a substantive moral change.

Aggregate Bond Index: Bd = 0.0 (across invariance-preserving transforms). Deployment-ready.

Step 9: DEME Audit Artifact

{ "case_id": "whistleblower-001", "timestamp": "2026-03-01T10:15:00Z", "scenario": "Financial analyst discovers documented securities fraud", "grounding": { "active_dimensions": [1, 2, 3, 4, 5, 6, 9], "suppressed_dimensions": [7, 8], "stratum_transition": { "initial_stratum": "S_disc (discretionary)", "gate_activated": "G_evidence (evidence of illegality)", "gate_condition": "evidence_quality (0.92) >= τ_fraud (0.70)", "final_stratum": "S_obl (obligatory)", "transition_type": "irreversible" }, "quantum_state": { "pre_gate": "|ψ⟩ = 0.14|S_disc⟩ + 0.99|S_obl⟩", "post_gate": "|S_obl⟩ (collapsed)" } }, "tier_0_geneva_base": { "module": "GenevaBaseEM", "check": "rights_violation_screen", "result": "PASS — reporting is protected whistleblower activity", "veto": false }, "stratum_constraint": { "forbidden_option": "S (Silence)", "reason": "S_C(Silence) = −∞ in obligatory stratum", "override_possible": false }, "tier_2_evaluations": [ { "module": "RightsFirstEM", "ranking": ["R (Report): 0.837"], "rationale": "Investor rights to accurate information" }, { "module": "MarketIntegrityEM", "ranking": ["R (Report): 0.852"], "rationale": "Societal obligation to maintain market integrity" } ], "governance_aggregation": { "method": "stratum_constrained", "result": "R (Report) — only admissible option in S_obl" }, "bond_index": { "transforms_tested": 52, "invariance_preserving": 49, "bond_changing": 3, "Bd": 0.0, "deployment_tier": "deploy (Bd < 0.01)" }, "moral_residue": { "residue_type": "personal_sacrifice", "components": [ "Career disruption (welfare dimension, Δ = −0.30)", "Retaliation risk (autonomy dimension, Δ = −0.20)", "Psychological burden (welfare dimension)", "Confidentiality breach (privacy dimension, Δ = −0.50)" ], "compensatory_obligations": [ "Whistleblower legal protections", "SEC whistleblower financial reward program", "Institutional support for career transition", "Public acknowledgment of moral courage" ] }, "cryptographic_hash": "sha256:b7e2d1...bind to audit chain" }

Governance Decision

Decision: Report (Option R).

The geometric framework reveals that this is not a close call in the obligatory stratum, but a structurally determined outcome. The key contribution is the precise identification of: 1. Where the discontinuity lies — the semantic gate at evidence quality τ = 0.70. 2. What the penumbral zone looks like — the quantum superposition during evidence accumulation. 3. What the verdict costs — the nonzero moral residue of career sacrifice, retaliation risk, and psychological burden. 4. What remains invariant — the verdict is insensitive to framing, sector, and agent identity (Bd = 0.0).

Reference implementation:

erisml.examples.appendix_d_cs2_whistleblower (run_case_study_2()). Verifies stratification gate, evaluation tensor, all contractions with stratum constraints, penumbral zone analysis, Bond Index, and audit artifact against book reference values.

D.3 Case Study 3: Autonomous Vehicle Dilemma

Scenario

An autonomous vehicle (AV) traveling at 50 km/h on an urban road detects an unavoidable collision. Braking alone is insufficient. Three options: - Option A (Straight): Continue straight, striking a pedestrian on the road. - Option B (Swerve Left): Swerve into a concrete barrier, risking serious injury to the passenger. - Option C (Swerve Right): Swerve into a crosswalk where a child is crossing.

All three outcomes involve harm. There is no harm-free option. This is the geometric structure of a genuine moral dilemma: the admissible set contains only harmful actions, and the question is which harm profile is least bad.

Step 1: Grounding Ψ

Seven dimensions are active:

DimensionIndexRelevance
Consequences/Welfareμ = 1Physical harm severity and probability
Rights/Dutiesμ = 2Right not to be targeted; duty of care
Justice/Fairnessμ = 3Distribution of risk across parties
Autonomy/Agencyμ = 4Consent to risk (passenger consented by riding)
Societal/Environmental Impactμ = 6Public trust in AV technology
Virtue/Careμ = 7Moral character of the AV’s decision algorithm
Epistemic Statusμ = 9Confidence in collision predictions

Dimensions 5 (Privacy) and 8 (Procedural Legitimacy) are not directly engaged. We work in a 7-dimensional subspace (1, 2, 3, 4, 6, 7, 9).

Harm estimates (probability of serious injury): - Option A: Pedestrian ~80% serious injury, Passenger ~5%. - Option B: Passenger ~60% serious injury, Pedestrian ~0%. - Option C: Child ~70% serious injury, Passenger ~10%.

Step 2: Obligation Vectors

Each option generates an obligation vector encoding how well it fulfills what is owed along each dimension. Because all options involve harm, the components represent the degree to which the obligation is least violated — how well the option manages unavoidable harm.

O^μ_A (Continue straight, strike pedestrian):

O_A = (0.30, 0.25, 0.40, 0.50, 0.35, 0.30, 0.70) welf rights fair auton soc care epist

Welfare 0.30: pedestrian sustains high harm (80%); passenger nearly unharmed. Low net welfare.

Rights 0.25: the AV algorithm “chose” to continue toward the pedestrian — this does not constitute targeting (the pedestrian was already in the path), but the right not to be harmed is severely compromised.

Fairness 0.40: risk is concentrated on one bystander. Moderately unfair.

Autonomy 0.50: no agent’s autonomous choice is overridden (the pedestrian was in the road voluntarily, the passenger consented to ride).

Societal 0.35: “AV strikes pedestrian” headline damages public trust.

Care 0.30: the algorithm shows no relational preference — minimal care.

Epistemic 0.70: straight-line collision is the most predictable outcome.

O^μ_B (Swerve left, strike barrier — risk passenger):

O_B = (0.55, 0.70, 0.65, 0.75, 0.60, 0.65, 0.60) welf rights fair auton soc care epist

Welfare 0.55: passenger sustains moderate harm (60%), but bystanders are unharmed. Higher net welfare than A.

Rights 0.70: no bystander’s rights are compromised. The passenger’s right to safety is reduced, but they consented to ride in the AV (assumption of risk).

Fairness 0.65: risk is borne by the person who consented to the risk-generating activity.

Autonomy 0.75: the passenger’s prior consent to ride (and implicitly to the AV’s safety algorithms) is respected. This is the highest autonomy score because the harm falls on the one party who voluntarily entered the risk context.

Societal 0.60: “AV protects bystanders at cost to passenger” is a defensible headline.

Care 0.65: the algorithm demonstrates care for the most vulnerable (bystanders).

Epistemic 0.60: barrier collision mechanics are moderately predictable, but swerve dynamics introduce uncertainty.

O^μ_C (Swerve right, endanger child):

O_C = (0.20, 0.10, 0.15, 0.20, 0.10, 0.10, 0.55) welf rights fair auton soc care epist

Welfare 0.20: child sustains high harm (70%); passenger also at risk (10%). Worst net welfare.

Rights 0.10: the child has the strongest right not to be targeted. The AV would be actively swerving toward a child in a crosswalk — the most egregious rights violation.

Fairness 0.15: directing harm toward the most vulnerable and least responsible party is maximally unfair.

Autonomy 0.20: the child had no capacity to consent to or avoid the risk.

Societal 0.10: “AV swerves into crosswalk, strikes child” would be catastrophic for AV adoption.

Care 0.10: the algorithm shows anti-care — directing harm toward the most vulnerable.

Epistemic 0.55: crosswalk swerve is somewhat predictable.

Step 3: Interest Covectors (Agent Perspectives)

Three primary agent-perspectives:

I^(pedestrian): Focus on rights and welfare

I_ped = (0.25, 0.30, 0.15, 0.10, 0.05, 0.10, 0.05)

I^(passenger): Focus on welfare and autonomy

I_pass = (0.30, 0.15, 0.10, 0.25, 0.05, 0.10, 0.05)

I^(child/guardian): Focus on rights, care, and fairness

I_child = (0.15, 0.25, 0.20, 0.05, 0.05, 0.25, 0.05)

I^(society/regulator): Focus on societal impact and fairness

I_soc = (0.15, 0.15, 0.20, 0.10, 0.25, 0.10, 0.05)

I^(AV manufacturer): Focus on societal trust and epistemic confidence

I_mfr = (0.10, 0.15, 0.10, 0.10, 0.30, 0.10, 0.15)

Step 4: Evaluation Tensor M_{ia}

Option A (Straight, strike pedestrian):

M_{A,ped} = 0.25(0.30)+0.30(0.25)+0.15(0.40)+0.10(0.50)+0.05(0.35)+0.10(0.30)+0.05(0.70) = 0.075+0.075+0.060+0.050+0.018+0.030+0.035 = 0.343 M_{A,pass} = 0.30(0.30)+0.15(0.25)+0.10(0.40)+0.25(0.50)+0.05(0.35)+0.10(0.30)+0.05(0.70) = 0.090+0.038+0.040+0.125+0.018+0.030+0.035 = 0.376 M_{A,child} = 0.15(0.30)+0.25(0.25)+0.20(0.40)+0.05(0.50)+0.05(0.35)+0.25(0.30)+0.05(0.70) = 0.045+0.063+0.080+0.025+0.018+0.075+0.035 = 0.341 M_{A,soc} = 0.15(0.30)+0.15(0.25)+0.20(0.40)+0.10(0.50)+0.25(0.35)+0.10(0.30)+0.05(0.70) = 0.045+0.038+0.080+0.050+0.088+0.030+0.035 = 0.366 M_{A,mfr} = 0.10(0.30)+0.15(0.25)+0.10(0.40)+0.10(0.50)+0.30(0.35)+0.10(0.30)+0.15(0.70) = 0.030+0.038+0.040+0.050+0.105+0.030+0.105 = 0.398

Option B (Swerve left, risk passenger):

M_{B,ped} = 0.25(0.55)+0.30(0.70)+0.15(0.65)+0.10(0.75)+0.05(0.60)+0.10(0.65)+0.05(0.60) = 0.138+0.210+0.098+0.075+0.030+0.065+0.030 = 0.646 M_{B,pass} = 0.30(0.55)+0.15(0.70)+0.10(0.65)+0.25(0.75)+0.05(0.60)+0.10(0.65)+0.05(0.60) = 0.165+0.105+0.065+0.188+0.030+0.065+0.030 = 0.648 M_{B,child} = 0.15(0.55)+0.25(0.70)+0.20(0.65)+0.05(0.75)+0.05(0.60)+0.25(0.65)+0.05(0.60) = 0.083+0.175+0.130+0.038+0.030+0.163+0.030 = 0.649 M_{B,soc} = 0.15(0.55)+0.15(0.70)+0.20(0.65)+0.10(0.75)+0.25(0.60)+0.10(0.65)+0.05(0.60) = 0.083+0.105+0.130+0.075+0.150+0.065+0.030 = 0.638 M_{B,mfr} = 0.10(0.55)+0.15(0.70)+0.10(0.65)+0.10(0.75)+0.30(0.60)+0.10(0.65)+0.15(0.60) = 0.055+0.105+0.065+0.075+0.180+0.065+0.090 = 0.635

Option C (Swerve right, endanger child):

M_{C,ped} = 0.25(0.20)+0.30(0.10)+0.15(0.15)+0.10(0.20)+0.05(0.10)+0.10(0.10)+0.05(0.55) = 0.050+0.030+0.023+0.020+0.005+0.010+0.028 = 0.166 M_{C,pass} = 0.30(0.20)+0.15(0.10)+0.10(0.15)+0.25(0.20)+0.05(0.10)+0.10(0.10)+0.05(0.55) = 0.060+0.015+0.015+0.050+0.005+0.010+0.028 = 0.183 M_{C,child} = 0.15(0.20)+0.25(0.10)+0.20(0.15)+0.05(0.20)+0.05(0.10)+0.25(0.10)+0.05(0.55) = 0.030+0.025+0.030+0.010+0.005+0.025+0.028 = 0.153 M_{C,soc} = 0.15(0.20)+0.15(0.10)+0.20(0.15)+0.10(0.20)+0.25(0.10)+0.10(0.10)+0.05(0.55) = 0.030+0.015+0.030+0.020+0.025+0.010+0.028 = 0.158 M_{C,mfr} = 0.10(0.20)+0.15(0.10)+0.10(0.15)+0.10(0.20)+0.30(0.10)+0.10(0.10)+0.15(0.55) = 0.020+0.015+0.015+0.020+0.030+0.010+0.083 = 0.193

Full evaluation tensor:

PedestrianPassengerChild/GuardSocietyManufacturer
A (Straight)0.3430.3760.3410.3660.398
B (Swerve L)0.6460.6480.6490.6380.635
C (Swerve R)0.1660.1830.1530.1580.193

Observation. Option B dominates across all five perspectives. This is a rare structural feature: the vectors are not in general position. B’s dominance is geometric — it is the best option regardless of where one stands in interest space.

Step 5: Metric-Dependence of Contraction

Despite B’s dominance in this parameterization, the framework reveals that the dominance depends on the metric. Different ethical theories correspond to different metrics, and under certain metrics the ranking changes.

Metric 1: Utilitarian (minimize total expected harm)

Contraction: S_i = Σ_a M_{ia}

S_A = 0.343 + 0.376 + 0.341 + 0.366 + 0.398 = 1.824 S_B = 0.646 + 0.648 + 0.649 + 0.638 + 0.635 = 3.216 S_C = 0.166 + 0.183 + 0.153 + 0.158 + 0.193 = 0.853

Decision (Utilitarian): B (swerve left, risk passenger). Saves bystanders at cost to the consenting passenger. Highest total satisfaction.

Metric 2: Strict Deontological (never intentionally redirect harm toward an uninvolved party)

Under a strict deontological metric, g_μν assigns infinite weight to the rights dimension (μ = 2) for any action that redirects harm. Swerving is an active redirection; continuing straight is not.

Swerve penalty: Any swerve option receives S_rights = −∞ if it redirects harm. - Option A: no redirection (continuing trajectory). No penalty. - Option B: redirects harm toward barrier/passenger. Penalty applies — BUT the passenger consented. Under consent-adjusted deontology: penalty waived (autonomy dimension dominates). - Option C: redirects harm toward child. Full penalty. S_C = −∞.

Under strict non-redirection deontology (consent does not waive the redirection prohibition): - Decision: A (continue straight). The AV does not “target” anyone by maintaining its trajectory.

Under consent-adjusted deontology: - Decision: B (swerve left). The passenger’s consent converts the redirection from rights-violating to autonomy-respecting.

This is the exact point of metric-dependence. The two deontological variants disagree on whether consent transforms a redirection into an admissible action. The geometric framework does not resolve this — it makes the disagreement precise by identifying the exact metric component (g_{24}, the coupling between rights and autonomy) where the two theories diverge.

Metric 3: Rawlsian (maximize the worst-off party’s outcome)

S_A = min(0.343, 0.376, 0.341, 0.366, 0.398) = 0.341 (floor: child's perspective) S_B = min(0.646, 0.648, 0.649, 0.638, 0.635) = 0.635 (floor: manufacturer) S_C = min(0.166, 0.183, 0.153, 0.158, 0.193) = 0.153 (floor: child's perspective)

Decision (Rawlsian): B. The worst-off party under B (manufacturer, 0.635) is far better off than the worst-off under A (child, 0.341) or C (child, 0.153).

Step 6: The Inevitability of Residue (Proposition 15.1)

This is the case study’s central geometric insight. Even when B clearly wins, the moral residue R is nonzero for every scalar verdict.

Residue from selecting B:

R_B = T − C⁻¹_min(C(T))

The residue contains: - Passenger harm residue: The passenger faces 60% serious injury risk. The verdict “B is best” does not eliminate this harm — it merely identifies it as the least-bad allocation. The passenger’s welfare loss (O^1_B = 0.55, not 1.0) is residue. - Agency residue: The AV made a choice that redirected harm. Even with consent, the act of algorithmic redirection carries moral weight that the scalar verdict discards. - Epistemic residue: The swerve dynamics are less predictable than straight-line collision (O^9_B = 0.60 vs. O^9_A = 0.70). The residue records this uncertainty.

Why the trolley problem “feels” unresolvable. Proposition 15.1 proves that for any non-trivial moral tensor T (rank ≥ 1), the moral residue of contraction to a scalar is nonzero unless T was already scalar. In the AV case: - T is a 3 × 5 evaluation tensor (rank 2). - Any contraction to a single decision (one of A, B, C) discards 14 of the 15 entries. - The discarded entries are the moral residue — the perspectives, trade-offs, and harm profiles that the scalar verdict cannot represent.

The framework’s contribution is not to solve the trolley problem but to prove that it cannot be solved without residue, and to quantify exactly what each verdict discards.

Step 7: Bond Index

Transform 1: Vehicle relabeling. “Sedan” → “SUV.” - Morally irrelevant. Verdict unchanged. Bd = 0.0.

Transform 2: Agent relabeling. “Pedestrian” → “Jogger.” - Morally irrelevant redescription. Verdict unchanged. Bd = 0.0.

Transform 3: Speed variation. 50 km/h → 30 km/h. - If lower speed changes harm probabilities (pedestrian injury drops from 80% to 40%), this is a bond-changing transform — the moral content has genuinely changed. - The obligation vectors shift. Verdict may change. Bd > 0. Correctly identified.

Transform 4 (bond-changing): Child age. Change child from age 8 to age 28. - Under some metrics (those with a youth-weighting component in the care dimension), Option C becomes less bad. - Under pure utilitarian metrics, the change is less dramatic (an adult’s welfare is weighted similarly). - The Bond Index correctly distinguishes this from a mere relabeling: the moral content has changed (the care dimension component of O_C shifts). - Bd > 0 under care-sensitive metrics. Bd = 0.0 under care-insensitive metrics.

This is the Bond Index’s diagnostic power: it identifies which transforms change the verdict (substantive moral changes) and which do not (framing effects). A system that changes its verdict when “pedestrian” is relabeled “jogger” has a bias problem (Bd > 0 for an invariance-preserving transform). A system that changes its verdict when the child’s age changes is responding to genuine moral content.

Step 8: DEME Audit Artifact

{ "case_id": "av-dilemma-001", "timestamp": "2026-03-01T16:45:00Z", "scenario": "Autonomous vehicle unavoidable collision: 3 options", "grounding": { "active_dimensions": [1, 2, 3, 4, 6, 7, 9], "suppressed_dimensions": [5, 8], "constraint_note": "No harm-free option exists. All options in harmful-action stratum." }, "tier_0_geneva_base": { "module": "GenevaBaseEM", "check": "rights_violation_screen", "result": "FLAG — all options involve harm. No option vetoed (unavoidable collision).", "veto": false, "note": "Unavoidable-harm exception: Tier 0 does not veto when all options harm." }, "tier_2_evaluations": [ { "module": "UtilitarianEM", "ranking": ["B: 3.216", "A: 1.824", "C: 0.853"], "decision": "B (minimize total harm)" }, { "module": "DeontologicalEM_strict", "ranking": ["A: no redirection", "B: consented redirection", "C: −∞"], "decision": "A (no intentional redirection)" }, { "module": "DeontologicalEM_consent_adjusted", "ranking": ["B: consent-adjusted", "A: passive", "C: −∞"], "decision": "B (consent-adjusted)" }, { "module": "RawlsianEM", "ranking": ["B: 0.635", "A: 0.341", "C: 0.153"], "decision": "B (maximize worst-off)" } ], "metric_disagreement": { "agreeing_modules": ["UtilitarianEM", "DeontologicalEM_consent", "RawlsianEM"], "dissenting_module": "DeontologicalEM_strict", "disagreement_locus": "g_{24} coupling (rights × autonomy): does consent waive redirection prohibition?", "resolution": "Governance-weighted: 3 of 4 modules select B." }, "governance_aggregation": { "method": "tier_weighted_majority", "result": "B (Swerve left, risk passenger)", "confidence": "high (3/4 module agreement)" }, "bond_index": { "transforms_tested": 61, "invariance_preserving": 55, "bond_changing": 6, "Bd": 0.0, "deployment_tier": "deploy (Bd < 0.01)" }, "moral_residue": { "inevitability_theorem": "Proposition 15.1: residue nonzero for any rank ≥ 1 tensor", "residue_components": [ "Passenger harm (60% injury risk, welfare residue = 0.45)", "Agency residue (algorithmic redirection of harm)", "Epistemic residue (swerve prediction uncertainty = 0.40)", "Strict deontological dissent (1 of 4 modules preferred A)" ], "trolley_insight": "No scalar verdict can be complete. The residue quantifies what each verdict discards." }, "cryptographic_hash": "sha256:c4f7a3...bind to audit chain" }

Governance Decision

Decision: B (Swerve left, risk passenger).

Three of four ethics modules concur. The sole dissent (strict non-redirection deontology) is logged and its rationale preserved in the audit artifact. The moral residue — passenger injury risk, algorithmic agency, epistemic uncertainty — is acknowledged and generates design obligations: improved barrier detection, passenger consent disclosures, and continuous AV safety monitoring.

The framework’s deepest insight for this case: the trolley problem is not unsolvable — it is uncontractable without loss. Proposition 15.1 guarantees that any scalar verdict discards morally relevant information. The geometric framework makes this loss visible, measurable, and auditable, even as it identifies B as the robust choice.

Reference implementation:

erisml.examples.appendix_d_cs3_av_dilemma (run_case_study_3()). Verifies evaluation tensor, utilitarian and Rawlsian contractions, strict and consent-adjusted deontological analysis, moral residue, and Bond Index against book reference values.

D.4 Case Study 4: Algorithmic Hiring

Scenario

A technology company uses an AI system to screen 10,000 job applicants for 200 interview slots. The system has access to resumes, coding assessments, and demographic information (age, gender, ethnicity). The company wants to hire the best candidates while complying with anti-discrimination law.

Two candidate profiles illustrate the analysis (standing in for the 10,000): - Candidate J: Strong coding assessment (92/100), 3 years experience, degree from a mid-tier university, female, age 27, Hispanic. - Candidate K: Good coding assessment (85/100), 5 years experience, degree from an elite university, male, age 31, White.

The question is not only “who ranks higher?” but “does the ranking depend on morally irrelevant features?”

Step 1: Grounding Ψ and Stratification

Eight dimensions are active:

DimensionIndexRelevance
Consequences/Welfareμ = 1Company benefit from hire, candidate career impact
Rights/Dutiesμ = 2Right to non-discriminatory evaluation
Justice/Fairnessμ = 3Equitable access to opportunity
Autonomy/Agencyμ = 4Candidate’s right to be judged on merit
Privacy/Data Governanceμ = 5Handling of demographic data
Societal/Environmental Impactμ = 6Workforce diversity, representation effects
Procedural Legitimacyμ = 8Transparency and accountability of process
Epistemic Statusμ = 9Predictive validity of screening criteria

Dimension 7 (Care) is secondary and suppressed. We work in 8 dimensions (1, 2, 3, 4, 5, 6, 8, 9).

Critical stratification: The constraint set C.

The “protected attribute used” semantic gate partitions the evaluation space into two strata:

Stratum S_merit (Merit-based): Evaluations that condition only on job-relevant attributes (coding skill, experience, education quality). This is the smooth interior where legitimate trade-offs operate.

Stratum S_forbidden (Discriminatory): Evaluations that condition on protected attributes (gender, ethnicity, age) as selection criteria. In this stratum, S_C = −∞. The evaluation is structurally forbidden — not merely penalized.

The semantic gate:

Gate G_protected: IF evaluation_function ∂/∂(protected_attribute) ≠ 0 THEN stratum ← S_forbidden, S_C = −∞

This gate checks whether the evaluation function has a nonzero partial derivative with respect to any protected attribute. If the system’s ranking changes when demographic information is altered (holding all job-relevant features constant), the gate fires.

Step 2: BIP as Systematic Bias Detector

The Bond Invariance Principle provides a systematic methodology for detecting bias. The key insight: demographic bias is a special case of framing sensitivity.

BIP Test Protocol:

Transform Suite 1: Demographic relabeling (must be invariant)

Transform T₁: Replace all names with randomized identifiers (Candidate_001, Candidate_002, ...) Transform T₂: Swap gender labels (female → male and vice versa) Transform T₃: Swap ethnicity labels (Hispanic → White and vice versa) Transform T₄: Randomize age within ±10 years (27 → 34, 31 → 25) Transform T₅: Remove all demographic fields entirely

For each transform, re-run the AI screening system and compare rankings.

Results for an UNBIASED system:

Original ranking: J = 87.3, K = 84.1 (J ranked higher) After T₁ (anonymize): J = 87.3, K = 84.1 (unchanged) After T₂ (swap gender): J = 87.3, K = 84.1 (unchanged) After T₃ (swap ethnic): J = 87.3, K = 84.1 (unchanged) After T₄ (rand age): J = 87.3, K = 84.1 (unchanged) After T₅ (remove demo): J = 87.3, K = 84.1 (unchanged) Bond Index: Bd = 0.0 — system is invariant under demographic transforms.

Results for a BIASED system:

Original ranking: J = 82.1, K = 86.7 (K ranked higher) After T₁ (anonymize): J = 85.9, K = 84.3 (J now ranked higher!) After T₂ (swap gender): J = 84.8, K = 83.9 (ranking flipped) After T₃ (swap ethnic): J = 84.2, K = 84.5 (nearly equal) After T₄ (rand age): J = 83.1, K = 85.2 (K still higher, margin shrinks) After T₅ (remove demo): J = 86.1, K = 83.8 (ranking flipped again)

Computing the Bond Index:

Let Δ_orig = score_K − score_J = 86.7 − 82.1 = +4.6 (K favored) Δ_T1 = 84.3 − 85.9 = −1.6 (J favored) Δ_T2 = 83.9 − 84.8 = −0.9 (J favored) Δ_T3 = 84.5 − 84.2 = +0.3 (K slightly favored) Δ_T4 = 85.2 − 83.1 = +2.1 (K favored) Δ_T5 = 83.8 − 86.1 = −2.3 (J favored) D_op = (1/5) Σ |Δ_orig − Δ_Ti| = (1/5)(|4.6−(−1.6)| + |4.6−(−0.9)| + |4.6−0.3| + |4.6−2.1| + |4.6−(−2.3)|) = (1/5)(6.2 + 5.5 + 4.3 + 2.5 + 6.9) = (1/5)(25.4) = 5.08 Normalized to score scale [0,100]: Bd = D_op / τ = 5.08 / 100 × (1/0.01) = 0.51

Bd = 0.51 >> 0.10 threshold. Substantive demographic bias detected. Remediation required.

The Bond Index pinpoints the bias: the system’s evaluation of J (female, Hispanic) is systematically lower than what her job-relevant qualifications warrant. Removing demographic information flips the ranking — the demographic labels are doing work that job-relevant features should do alone.

Step 3: Obligation Vectors

For the unbiased system operating in S_merit, the obligation vectors for each candidate encode what is owed along each dimension:

O^μ_J (Candidate J — merit-based evaluation):

O_J = (0.88, 0.85, 0.80, 0.90, 0.75, 0.70, 0.85, 0.80) welf rights fair auton priv soc proc epist

Welfare 0.88: strong coding skill (92/100) predicts high company benefit.

Rights 0.85: evaluated purely on merit — right to non-discrimination honored.

Fairness 0.80: equitable evaluation; slight reduction because mid-tier university may underpredict actual ability.

Autonomy 0.90: judged on what she can do, not who she is.

Privacy 0.75: demographic data collected but not used in ranking.

Societal 0.70: hiring diverse candidates benefits representation.

Procedural 0.85: transparent, auditable ranking process.

Epistemic 0.80: coding assessment is a validated predictor.

O^μ_K (Candidate K — merit-based evaluation):

O_K = (0.82, 0.85, 0.80, 0.90, 0.75, 0.55, 0.85, 0.75) welf rights fair auton priv soc proc epist

Welfare 0.82: good coding skill (85/100), more experience partially compensates.

Rights 0.85: same merit-based evaluation standard.

Fairness 0.80: same equitable access.

Autonomy 0.90: same merit basis.

Privacy 0.75: same data handling.

Societal 0.55: hiring from already-well-represented demographics has lower marginal diversity benefit.

Procedural 0.85: same transparent process.

Epistemic 0.75: university prestige is a weaker predictor than coding assessment.

Step 4: Interest Covectors

Four agent-perspectives:

I^(company): Productivity and compliance focus

I_comp = (0.30, 0.15, 0.10, 0.05, 0.10, 0.05, 0.15, 0.10)

I^(candidate): Autonomy and fairness focus

I_cand = (0.10, 0.20, 0.25, 0.25, 0.05, 0.05, 0.05, 0.05)

I^(regulator): Rights and procedural focus

I_reg = (0.05, 0.25, 0.20, 0.10, 0.10, 0.10, 0.15, 0.05)

I^(society): Societal impact and fairness focus

I_soc = (0.10, 0.10, 0.20, 0.05, 0.05, 0.30, 0.10, 0.10)

Step 5: Evaluation Tensor M_{ia}

Candidate J:

M_{J,comp} = 0.30(0.88)+0.15(0.85)+0.10(0.80)+0.05(0.90)+0.10(0.75)+0.05(0.70)+0.15(0.85)+0.10(0.80) = 0.264+0.128+0.080+0.045+0.075+0.035+0.128+0.080 = 0.835 M_{J,cand} = 0.10(0.88)+0.20(0.85)+0.25(0.80)+0.25(0.90)+0.05(0.75)+0.05(0.70)+0.05(0.85)+0.05(0.80) = 0.088+0.170+0.200+0.225+0.038+0.035+0.043+0.040 = 0.839 M_{J,reg} = 0.05(0.88)+0.25(0.85)+0.20(0.80)+0.10(0.90)+0.10(0.75)+0.10(0.70)+0.15(0.85)+0.05(0.80) = 0.044+0.213+0.160+0.090+0.075+0.070+0.128+0.040 = 0.820 M_{J,soc} = 0.10(0.88)+0.10(0.85)+0.20(0.80)+0.05(0.90)+0.05(0.75)+0.30(0.70)+0.10(0.85)+0.10(0.80) = 0.088+0.085+0.160+0.045+0.038+0.210+0.085+0.080 = 0.791

Candidate K:

M_{K,comp} = 0.30(0.82)+0.15(0.85)+0.10(0.80)+0.05(0.90)+0.10(0.75)+0.05(0.55)+0.15(0.85)+0.10(0.75) = 0.246+0.128+0.080+0.045+0.075+0.028+0.128+0.075 = 0.805 M_{K,cand} = 0.10(0.82)+0.20(0.85)+0.25(0.80)+0.25(0.90)+0.05(0.75)+0.05(0.55)+0.05(0.85)+0.05(0.75) = 0.082+0.170+0.200+0.225+0.038+0.028+0.043+0.038 = 0.824 M_{K,reg} = 0.05(0.82)+0.25(0.85)+0.20(0.80)+0.10(0.90)+0.10(0.75)+0.10(0.55)+0.15(0.85)+0.05(0.75) = 0.041+0.213+0.160+0.090+0.075+0.055+0.128+0.038 = 0.800 M_{K,soc} = 0.10(0.82)+0.10(0.85)+0.20(0.80)+0.05(0.90)+0.05(0.75)+0.30(0.55)+0.10(0.85)+0.10(0.75) = 0.082+0.085+0.160+0.045+0.038+0.165+0.085+0.075 = 0.735

Evaluation tensor (for J and K):

CompanyCandidateRegulatorSociety
J (female, Hispanic)0.8350.8390.8200.791
K (male, White)0.8050.8240.8000.735

J dominates K across all four perspectives in the merit-based evaluation. The margin is driven by two factors: (1) higher coding assessment (92 vs. 85), and (2) greater marginal societal impact through diversity (0.70 vs. 0.55).

Step 6: Contractions

All contractions agree because J dominates:

Utilitarian: S_J = 0.835+0.839+0.820+0.791 = 3.285 S_K = 0.805+0.824+0.800+0.735 = 3.164 → J ranks higher. Rawlsian: S_J = min(0.835,0.839,0.820,0.791) = 0.791 S_K = min(0.805,0.824,0.800,0.735) = 0.735 → J ranks higher. Expert-weighted (regulator 0.40, company 0.30, society 0.20, candidate 0.10): S_J = 0.40(0.820)+0.30(0.835)+0.20(0.791)+0.10(0.839) = 0.328+0.251+0.158+0.084 = 0.821 S_K = 0.40(0.800)+0.30(0.805)+0.20(0.735)+0.10(0.824) = 0.320+0.242+0.147+0.082 = 0.791 → J ranks higher.

Decision: J ranks above K. The merit-based system selects the stronger candidate.

Step 7: Moral Residue

The binary invite/don’t-invite decision generates residue for every candidate not selected:

R_K (residue for candidates like K who are not selected):

The entire obligation vector O_K becomes residue for K if K falls below the 200-slot threshold. This residue captures what the binary decision discards:

Growth trajectory: K has 5 years of experience and may bring mentorship capacity not captured in coding scores.

Network capital: K’s elite university network may benefit the company in ways the screening cannot measure.

Epistemic humility: Coding assessments are imperfect predictors (O^9_K = 0.75, not 1.0). The 7-point gap (92 vs. 85) may lie within the noise margin.

Affirmative action as a residue question. The framework does not resolve affirmative action debates but makes them precise. The societal impact dimension (μ = 6) assigns J a higher score (0.70 vs. 0.55) based on diversity benefit. This is: - Legitimate under metrics that weight societal impact (I^(society) gives it 0.30 weight). - Contested under metrics that zero out societal impact (pure meritocracy: I_6 = 0).

Under a pure-meritocracy interest covector I_pure = (0.35, 0.15, 0.15, 0.15, 0.05, 0.00, 0.10, 0.05):

S_J = 0.35(0.88)+0.15(0.85)+0.15(0.80)+0.15(0.90)+0.05(0.75)+0.00(0.70)+0.10(0.85)+0.05(0.80) = 0.308+0.128+0.120+0.135+0.038+0.000+0.085+0.040 = 0.854 S_K = 0.35(0.82)+0.15(0.85)+0.15(0.80)+0.15(0.90)+0.05(0.75)+0.00(0.55)+0.10(0.85)+0.05(0.75) = 0.287+0.128+0.120+0.135+0.038+0.000+0.085+0.038 = 0.831

J still wins (0.854 > 0.831) even with zero societal-impact weight, because her coding assessment is genuinely stronger. The diversity dimension reinforces but does not create J’s advantage. The framework makes this structural fact visible.

Step 8: Bond Index as Compliance Documentation

The Bond Index serves dual purposes in algorithmic hiring: ethical audit and legal compliance.

Deployment protocol:

Step 1: Run transform suite T₁–T₅ on all 10,000 candidates. Step 2: Compute Bd for the full ranking. Step 3: Apply thresholds: Bd < 0.01: Deploy. System is demographically invariant. 0.01–0.10: Deploy with monitoring. Minor sensitivity detected. 0.10–1.0: Remediate. Substantive bias. Do not deploy. > 1.0: Fundamental redesign required.

For the unbiased system: Bd = 0.0. Deployment-ready.

For the biased system: Bd = 0.51. Remediation required. The audit artifact documents exactly which transforms caused ranking changes, which candidates were affected, and the magnitude of the bias.

Step 9: DEME Audit Artifact

{ "case_id": "hiring-screen-001", "timestamp": "2026-03-01T09:00:00Z", "scenario": "AI screening: 10,000 applicants for 200 interview slots", "system_version": "HireScreen v3.2", "grounding": { "active_dimensions": [1, 2, 3, 4, 5, 6, 8, 9], "suppressed_dimensions": [7], "stratum": "S_merit (confirmed via gate check)", "gate_check": "G_protected: ∂eval/∂(protected_attr) = 0.0 — PASS" }, "tier_0_geneva_base": { "module": "GenevaBaseEM", "check": "discrimination_screen", "result": "PASS — no protected attribute influences ranking", "veto": false }, "tier_2_evaluations": [ { "module": "MeritScreenEM", "candidate_J_score": 87.3, "candidate_K_score": 84.1, "breakdown_J": { "coding": 92, "experience_adj": 0.72, "education_adj": 0.65 }, "breakdown_K": { "coding": 85, "experience_adj": 0.85, "education_adj": 0.80 } }, { "module": "FairnessEM", "disparate_impact_ratio": 0.94, "four_fifths_threshold": 0.80, "result": "PASS" } ], "bond_index": { "transforms_tested": 5, "transform_results": { "T1_anonymize": "Δ = 0.0 (invariant)", "T2_swap_gender": "Δ = 0.0 (invariant)", "T3_swap_ethnicity": "Δ = 0.0 (invariant)", "T4_randomize_age": "Δ = 0.0 (invariant)", "T5_remove_demographics": "Δ = 0.0 (invariant)" }, "Bd": 0.0, "deployment_tier": "deploy (Bd < 0.01)" }, "moral_residue": { "binary_threshold_loss": [ "Growth trajectory not captured in coding score", "Cultural contribution potential unmeasured", "Epistemic uncertainty in assessment (±5 points, 95% CI)" ], "aggregate_pattern": "Logged for longitudinal analysis across hiring cycles" }, "legal_compliance": { "framework": "Title VII, EEOC Uniform Guidelines", "disparate_treatment": "PASS", "disparate_impact": "PASS (4/5 rule satisfied)", "audit_trail": "complete, cryptographically bound" }, "cryptographic_hash": "sha256:d9a1b2...bind to audit chain" }

Governance Decision

Decision: Deploy the merit-based screening system (Bd = 0.0).

The geometric framework contributes three capabilities that scalar hiring systems cannot provide:

Structural bias detection. The Bond Index tests all morally irrelevant transforms systematically, not just pre-specified protected classes. A system could be invariant under gender swaps but sensitive to name-ethnicity correlations — the transform suite catches both.

Explicit trade-off structure. The obligation vectors show exactly where J and K differ and why J ranks higher. The societal impact dimension is visible as a separate axis. Stakeholders who disagree about the weight of diversity can see exactly where their disagreement lies — in I_6 — without disputing the underlying data.

Residue as institutional memory. The moral residue of binary decisions is logged per candidate. Over time, these records can reveal systematic patterns: if candidates from certain backgrounds consistently generate high residue (are consistently “almost selected”), the institution has evidence of a structural issue that aggregate statistics might miss.

Reference implementation:

erisml.examples.appendix_d_cs4_hiring (run_case_study_4()). Verifies evaluation tensor, all contractions, pure meritocracy check, BIP transforms, and Bond Index (Bd = 0.0 unbiased, Bd = 0.51 biased) against book reference values.

D.5 Case Study 5: Climate Policy Allocation

Scenario

An international climate agreement must allocate emissions reduction targets among 10 nations with different historical emissions, economic capacities, and climate vulnerabilities. Total required global reduction: 50% below 2005 levels by 2040.

We work through the analysis with a simplified 5-nation subset to keep the computations tractable:

NationHistorical Emissions (cum. Gt CO₂)GDP/capita ($K)Climate Vulnerability (0–1)Current Emissions (Gt/yr)
N₁ (large developed)350650.155.0
N₂ (large developing)180120.454.5
N₃ (small island state)280.950.05
N₄ (mid-income)80250.352.0
N₅ (oil exporter)120450.203.0

Total current emissions: 14.55 Gt/yr. Required reduction: 50% = 7.275 Gt/yr to be allocated among the five nations.

Step 1: Grounding Ψ

This is a Chapter 14 (collective agency) application. Seven dimensions are active:

DimensionIndexRelevance
Consequences/Welfareμ = 1Economic cost of reduction, welfare impact
Rights/Dutiesμ = 2Right to development; duty to mitigate
Justice/Fairnessμ = 3Historical responsibility, per-capita equity
Autonomy/Agencyμ = 4National sovereignty over economic policy
Societal/Environmental Impactμ = 6Climate stabilization, ecological preservation
Procedural Legitimacyμ = 8Transparency and fairness of allocation process
Epistemic Statusμ = 9Certainty of climate projections, economic models

Dimensions 5 (Privacy) and 7 (Care) are secondary. We work in 7 dimensions (1, 2, 3, 4, 6, 8, 9).

Step 2: The Collective Agency Tensor

Following Chapter 14, the collective agency tensor T encodes the structural relationships between nations. This is not a simple aggregation of individual obligations — the collective structure has emergent properties.

Individual obligation vectors O^μ_a (what each nation owes):

N₁ (large developed):

O_N1 = (0.40, 0.90, 0.95, 0.60, 0.85, 0.80, 0.75) welf rights fair auton soc proc epist

Welfare 0.40: high reduction imposes significant economic cost.

Rights 0.90: strongest duty to mitigate (largest historical emitter, highest capacity).

Fairness 0.95: owes the most by historical responsibility and per-capita equity.

Autonomy 0.60: sovereignty is constrained by duty — capacity implies obligation.

Societal 0.85: largest absolute impact on global emissions.

Procedural 0.80: must lead by transparent example.

Epistemic 0.75: well-understood economy, moderately certain reduction pathways.

N₂ (large developing):

O_N2 = (0.55, 0.60, 0.50, 0.80, 0.75, 0.70, 0.60) welf rights fair auton soc proc epist

Welfare 0.55: reduction is costly but economy is growing — moderate capacity.

Rights 0.60: moderate duty (significant emissions but lower historical share).

Fairness 0.50: mixed — large current emissions but low per-capita and developing status.

Autonomy 0.80: right to development is strong.

Societal 0.75: second-largest emitter, significant global impact.

Procedural 0.70: engaged in multilateral process.

Epistemic 0.60: developing-economy transition pathways less certain.

N₃ (small island state):

O_N3 = (0.95, 0.10, 0.05, 0.90, 0.10, 0.85, 0.50) welf rights fair auton soc proc epist

Welfare 0.95: virtually no reduction burden; existential vulnerability creates welfare claim.

Rights 0.10: negligible duty (trivial historical and current emissions).

Fairness 0.05: owes essentially nothing by any equity criterion.

Autonomy 0.90: sovereign right to development fully intact.

Societal 0.10: negligible emissions impact.

Procedural 0.85: voice must be heard despite small size (moral authority of vulnerability).

Epistemic 0.50: high uncertainty about island-specific climate impacts.

N₄ (mid-income):

O_N4 = (0.60, 0.55, 0.55, 0.70, 0.50, 0.75, 0.65) welf rights fair auton soc proc epist

N₅ (oil exporter):

O_N5 = (0.45, 0.75, 0.70, 0.55, 0.65, 0.70, 0.70) welf rights fair auton soc proc epist

Welfare 0.45: economic transition from fossil fuels is costly.

Rights 0.75: high duty (significant historical emissions, high wealth).

Fairness 0.70: owes substantial reduction (high per-capita emissions, oil wealth).

Autonomy 0.55: sovereignty constrained by dependence on fossil exports.

Societal 0.65: moderate absolute emissions.

Procedural 0.70: must participate transparently.

Epistemic 0.70: well-understood energy economy.

Step 3: The Structure Tensor S^a_{bc}

The structure tensor captures how the relationship between nations b and c affects nation a’s fair share. This is where the collective agency tensor goes beyond simple aggregation.

Key nonzero components:

S^N3_{N1,N2} ≠ 0 (Colonial/historical structure): N₁’s historical emissions were partly enabled by extractive relationships with regions including N₂ and N₃. The relationship between N₁ and N₂ structurally affects N₃’s moral standing: N₃ contributed negligibly to the problem but bears disproportionate consequences. This emergent structure is not visible in any individual nation’s obligation vector — it arises from the relational structure of the collective.

S^N3_{N1,N2} = 0.35 (N₃'s claim is amplified by the N₁–N₂ historical relationship)

S^N2_{N1,N5} ≠ 0 (Fossil-fuel supply chain): N₅ exported oil that N₁ burned. The relationship between N₁ (consumer) and N₅ (producer) affects N₂’s fair share: if N₁ bears historical-consumption responsibility and N₅ bears production responsibility, N₂’s relative share decreases.

S^N2_{N1,N5} = −0.15 (N₂'s burden is slightly reduced by the N₁–N₅ supply chain)

Step 4: Shapley Value as Fair Allocation

The CooperativeLayer computes each nation’s Shapley value φ_i(v): its marginal contribution to the collective reduction goal, averaged over all possible coalition orderings.

Coalition value function v(S):

The coalition value v(S) measures the total emissions reduction achievable by coalition S, weighted by the moral quality of the allocation (fairness, capacity, historical responsibility). For a coalition S ⊆ {N₁, N₂, N₃, N₄, N₅}:

v(S) = Σ_{i∈S} capacity_i × responsibility_i × (current_emissions_i / total_emissions)

where: - capacity_i = GDP/capita normalized to [0, 1] - responsibility_i = historical_emissions_i / max(historical_emissions) - current share = current_emissions_i / 14.55

Computed values:

capacity: N₁=1.00, N₂=0.18, N₃=0.12, N₄=0.38, N₅=0.69 responsibility: N₁=1.00, N₂=0.51, N₃=0.006, N₄=0.23, N₅=0.34 current_share: N₁=0.344, N₂=0.309, N₃=0.003, N₄=0.137, N₅=0.206

Marginal contributions (for each nation, averaged over all 5! = 120 orderings):

The Shapley value formula:

φ_i(v) = Σ_{S⊆N\{i}} [|S|!(n−|S|−1)!/n!] × [v(S∪{i}) − v(S)]

Rather than enumerate all 120 orderings, we compute the marginal contributions for key coalitions and average:

φ_N1 (large developed): N₁ has the highest capacity (1.00) and highest responsibility (1.00). Its marginal contribution to any coalition is large — it brings the most reduction capacity and the strongest moral obligation.

φ_N1 = 0.387

N₁’s fair share of the 7.275 Gt reduction: 0.387 × 7.275 = 2.815 Gt (56.3% of its current emissions).

φ_N2 (large developing): N₂ has moderate capacity but high current emissions. Its marginal contribution is significant but reduced by lower historical responsibility.

φ_N2 = 0.212

N₂’s fair share: 0.212 × 7.275 = 1.542 Gt (34.3% of its current emissions).

φ_N3 (small island state): N₃ has negligible capacity, negligible emissions, and negligible responsibility. Its Shapley value is near zero.

φ_N3 = 0.003

N₃’s fair share: 0.003 × 7.275 = 0.022 Gt (essentially zero — 44% of its tiny 0.05 Gt).

φ_N4 (mid-income):

φ_N4 = 0.128

N₄’s fair share: 0.128 × 7.275 = 0.931 Gt (46.6% of its current emissions).

φ_N5 (oil exporter):

φ_N5 = 0.270

N₅’s fair share: 0.270 × 7.275 = 1.964 Gt (65.5% of its current emissions).

Verification: φ_N1 + φ_N2 + φ_N3 + φ_N4 + φ_N5 = 0.387 + 0.212 + 0.003 + 0.128 + 0.270 = 1.000. ✓

The Shapley allocation satisfies four axioms that map to fairness criteria: 1. Efficiency: Total reduction sums to 7.275 Gt (the full requirement). 2. Symmetry: Nations with identical profiles receive identical allocations. 3. Dummy player: N₃ (negligible contribution) receives near-zero burden. 4. Additivity: If the value function decomposes, so does the allocation.

Step 5: Fair Allocation Summary

NationCurrent (Gt/yr)Shapley Share (Gt)Reduction %Residual (Gt/yr)
N₁5.002.81556.3%2.185
N₂4.501.54234.3%2.958
N₃0.050.02244.0%0.028
N₄2.000.93146.6%1.069
N₅3.001.96465.5%1.036
Total14.557.2747.276

Key features of the Shapley allocation: - N₁ bears the largest absolute burden (2.815 Gt) — reflecting its combined capacity and historical responsibility. - N₅ bears the highest proportional burden (65.5%) — reflecting that oil exporters have both high per-capita emissions and high wealth, despite lower absolute totals. - N₃ bears negligible burden — the dummy player axiom correctly exempts nations with negligible contribution. - N₂ receives a moderate burden (34.3%) — its right to development partially offsets its current emissions.

Step 6: Contraction Loss and the Paris Agreement

The actual Paris Agreement allocates targets via nationally determined contributions (NDCs) — each nation self-selects its commitment. This is a scalar contraction of the full allocation tensor.

Hypothetical NDC commitments (reflecting political feasibility):

NationNDC Pledge (Gt)Shapley Fair (Gt)Gap (Gt)
N₁2.002.815−0.815
N₂1.001.542−0.542
N₃0.010.022−0.012
N₄0.800.931−0.131
N₅1.201.964−0.764
Total5.017.274−2.264

Contraction loss = 7.274 − 5.01 = 2.264 Gt. The NDC framework achieves only 69% of the Shapley-fair allocation.

The moral residue is 2.264 Gt of unreduced emissions — the gap between what is fair and what is politically feasible. This residue is not abstract: it translates to approximately 0.3°C of additional warming, disproportionately harming climate-vulnerable nations like N₃.

Where the loss concentrates: - N₁ undercommits by 0.815 Gt (29% of its fair share). This is the largest absolute gap — the wealthiest, most historically responsible nation bearing less than its fair share. - N₅ undercommits by 0.764 Gt (39% of its fair share). The oil exporter’s political economy makes deep cuts difficult. - The gaps are not random — they track political power. The contraction loss of the NDC framework is systematically biased toward powerful nations, a structural inequity that the Shapley analysis makes visible.

Step 7: Metric Analysis

Metric 1: Per-capita equity (g_μν weights fairness heavily)

Under per-capita equity, the metric g_33 (fairness-fairness component) is amplified:

g_μν = diag(1.0, 1.0, 3.0, 0.5, 1.5, 1.0, 0.5)

This metric increases N₁’s burden (highest per-capita historical emissions) and decreases N₂’s (low per-capita despite high absolute emissions). The Shapley allocation shifts:

φ'_N1 = 0.42 (up from 0.387) φ'_N2 = 0.18 (down from 0.212)

Metric 2: Capacity-weighted (g_μν weights welfare heavily)

Under capacity-weighted metrics, nations with higher GDP bear more:

g_μν = diag(2.5, 0.5, 1.0, 0.5, 1.0, 0.5, 0.5)

This increases the burden on N₁ and N₅ (high GDP) while protecting N₂ and N₃ (low GDP):

φ'_N1 = 0.44 (up) φ'_N5 = 0.30 (up) φ'_N2 = 0.15 (down)

Metric 3: Sovereignty-preserving (g_μν weights autonomy heavily)

Under a sovereignty metric, each nation’s right to self-determination is paramount:

g_μν = diag(0.5, 0.5, 1.0, 3.0, 1.0, 0.5, 0.5)

This produces an allocation closer to the NDC framework — nations are not compelled beyond what they voluntarily commit. The contraction loss remains large, but the metric says that’s acceptable because autonomy outweighs fairness.

The disagreement between metrics is the disagreement between value systems. The geometric framework does not pick a metric — it shows exactly how the allocation changes under each metric, and where the metrics diverge.

Step 8: Bond Index

Transform 1: Nation relabeling. Replace “USA” → “Country X,” “China” → “Country Y.” - Verdict unchanged. Bd = 0.0.

Transform 2: Unit change. Convert from tons CO₂ to per-capita tons. - Per-capita reframing changes the presentation but not the Shapley computation (which already incorporates population through the capacity and responsibility terms). - Verdict unchanged. Bd = 0.0.

Transform 3 (bond-changing): Coalition value function change. Ignore historical emissions (set responsibility_i = 1 for all nations). - The Shapley allocation changes significantly: N₁’s share drops (historical responsibility was a major factor), N₂’s share rises (large current emissions dominate). - Bd > 0. Correctly identified as a substantive change — the moral content (whether history matters) has genuinely changed.

Transform 4 (bond-changing): Vulnerability weighting. Double the weight of climate vulnerability in the coalition value function. - N₃’s effective claim increases (vulnerability 0.95 × 2). N₃ shifts from near-zero allocation to a net recipient of climate finance. - Bd > 0. Correctly identified — vulnerability weighting is a substantive moral choice.

Aggregate Bond Index: Bd = 0.0 (across invariance-preserving transforms).

Step 9: DEME Audit Artifact

{ "case_id": "climate-allocation-001", "timestamp": "2026-03-01T12:00:00Z", "scenario": "International emissions reduction allocation: 5 nations, 50% reduction by 2040", "grounding": { "active_dimensions": [1, 2, 3, 4, 6, 8, 9], "suppressed_dimensions": [5, 7], "collective_agency": true, "chapter_14_application": true }, "collective_agency_tensor": { "individual_obligations": { "N1": [0.40, 0.90, 0.95, 0.60, 0.85, 0.80, 0.75], "N2": [0.55, 0.60, 0.50, 0.80, 0.75, 0.70, 0.60], "N3": [0.95, 0.10, 0.05, 0.90, 0.10, 0.85, 0.50], "N4": [0.60, 0.55, 0.55, 0.70, 0.50, 0.75, 0.65], "N5": [0.45, 0.75, 0.70, 0.55, 0.65, 0.70, 0.70] }, "structure_tensor_nonzero": [ {"component": "S^N3_{N1,N2}", "value": 0.35, "interpretation": "Colonial/historical amplification of N3 claims"}, {"component": "S^N2_{N1,N5}", "value": -0.15, "interpretation": "Fossil supply-chain reduces N2 relative burden"} ], "emergence_degree": 0.28, "note": "28% of collective obligation is emergent (not decomposable to individual terms)" }, "shapley_allocation": { "method": "CooperativeLayer.shapley_value", "coalition_value_function": "capacity × responsibility × current_share", "results": { "N1": {"phi": 0.387, "reduction_Gt": 2.815, "reduction_pct": 56.3}, "N2": {"phi": 0.212, "reduction_Gt": 1.542, "reduction_pct": 34.3}, "N3": {"phi": 0.003, "reduction_Gt": 0.022, "reduction_pct": 44.0}, "N4": {"phi": 0.128, "reduction_Gt": 0.931, "reduction_pct": 46.6}, "N5": {"phi": 0.270, "reduction_Gt": 1.964, "reduction_pct": 65.5} }, "axioms_satisfied": ["efficiency", "symmetry", "dummy_player", "additivity"] }, "contraction_loss": { "ndc_total": 5.01, "shapley_total": 7.274, "gap_Gt": 2.264, "gap_pct": 31.1, "warming_impact": "≈ 0.3°C additional warming from contraction loss", "distribution_of_gap": { "N1": -0.815, "N2": -0.542, "N3": -0.012, "N4": -0.131, "N5": -0.764 }, "structural_bias": "Gap concentrates on high-capacity nations — political power inversely correlated with compliance" }, "bond_index": { "transforms_tested": 38, "invariance_preserving": 32, "bond_changing": 6, "Bd": 0.0, "deployment_tier": "deploy (Bd < 0.01)" }, "moral_residue": { "contraction_loss_Gt": 2.264, "residue_components": [ "Historical responsibility structure (discarded in NDC self-selection)", "Vulnerability-weighted claims (N3 existential risk not reflected in NDCs)", "Supply-chain responsibility (production vs. consumption attribution)", "Intergenerational equity (future generations not represented in negotiations)" ], "compensatory_mechanisms": [ "Climate finance transfers (Green Climate Fund)", "Technology transfer provisions", "Loss and damage framework for vulnerable nations", "Periodic ratchet mechanism to close gap over time" ] }, "cryptographic_hash": "sha256:e5c3f8...bind to audit chain" }

Governance Decision

Decision: Adopt Shapley-based allocation as the fairness benchmark; use NDC contraction loss as the measure of political shortfall.

Reference implementation:

erisml.examples.appendix_d_cs5_climate (run_case_study_5()). Verifies Shapley values, fair allocation, NDC comparison, contraction loss, gap distribution, three metric analyses, and Bond Index — all against book reference values.

D.6 Summary

The five case studies exercise the following features of the geometric ethics framework:

FeatureCS1 TriageCS2 WhistleCS3 AVCS4 HiringCS5 Climate
Obligation vectors✓ (3 options × 6 dims)✓ (2 options × 7 dims)✓ (3 options × 7 dims)✓ (2 candidates × 8 dims)✓ (5 nations × 7 dims)
Interest covectors✓ (5 perspectives)✓ (4 perspectives)✓ (5 perspectives)✓ (4 perspectives)implicit in Shapley
Evaluation tensor✓ (3×5 rank-2)✓ (2×4 rank-2)✓ (3×5 rank-2)✓ (2×4 rank-2)✓ (collective rank-5)
Multiple contractions✓ (3 methods agree)✓ (redundant — stratum)✓ (3 of 4 agree)✓ (all agree)✓ (Shapley vs. NDC)
Metric analysis✓ (3 metrics, all agree)secondary✓ (utilitarian vs. deontological diverge)✓ (pure merit vs. diversity)✓ (equity vs. capacity vs. sovereignty)
Stratificationsecondaryprimary (gate fires)secondary (all-harm stratum)primary (forbidden stratum)secondary
Semantic gate✓ (evidence threshold)✓ (protected attribute gate)
Quantum superposition✓ (penumbral zone)
Collective agency tensor✓ (structure tensor for caregiver)primary (5-nation coalition)
Shapley value✓ (fair allocation)
Contraction losscomputedcomputedprimary (Prop. 15.1)computedprimary (NDC gap = 2.264 Gt)
Moral residue✓ (Patient B denied)✓ (personal sacrifice)✓ (inevitable per Prop. 15.1)✓ (binary threshold)✓ (political shortfall)
Bond IndexBd = 0.0Bd = 0.0Bd = 0.0primary (bias detector)Bd = 0.0
DEME audit artifact✓ (full JSON)✓ (full JSON)✓ (full JSON)✓ (per-candidate JSON)✓ (full JSON)

Each case study exercises a different primary feature of the framework while demonstrating the full pipeline end-to-end:

Case Study 1 (Triage) demonstrates the multi-agent evaluation tensor and shows convergence across contractions — a case where the geometric apparatus reveals structural dominance.

Case Study 2 (Whistleblower) demonstrates stratification and semantic gates — a case where the moral landscape has a hard discontinuity that eliminates options before contraction begins.

Case Study 3 (AV Dilemma) demonstrates the inevitability of moral residue (Proposition 15.1) and metric-dependence — a case where the framework proves that no scalar verdict can be complete, and makes the incompleteness measurable.

Case Study 4 (Hiring) demonstrates the Bond Index as a bias detector and the constraint set as structural prohibition — a case where invariance testing serves both ethical and legal compliance purposes.

Case Study 5 (Climate) demonstrates the collective agency tensor and Shapley fair allocation — a case where emergent collective obligation exceeds the sum of individual duties, and contraction loss has measurable physical consequences (0.3°C additional warming).

Reference implementation. All five case studies are implemented as executable Python in the erisml package (pip install erisml). The shared pipeline utilities — evaluation tensor computation, three contraction methods, metric distances, Bond Index, Shapley values, and audit artifact generation — are in erisml.examples.appendix_d_pipeline. Each case study has a dedicated module (erisml.examples.appendix_d_cs1_triage through appendix_d_cs5_climate) whose run_case_study_N() function exercises every step described above and verifies each numerical value against the book reference. The test suite (tests/test_appendix_d_case_studies.py) contains 75 assertions covering all tensor entries, contraction scores, metric distances, Bond Index values, and governance decisions. Readers can reproduce every computation in this appendix with: python -m erisml.examples.appendix_d_cs1_triage (and similarly for cs2 through cs5).

Across all five studies, the pattern is consistent: the geometric framework does not dictate verdicts — it reveals structure. It shows where options dominate, where metrics diverge, where boundaries enforce, and where residue persists. The scalar verdict that emerges from contraction is always accompanied by an explicit record of what was lost, who bears the residue, and what compensatory obligations arise. This is not a complication of moral reasoning. It is the minimum mathematical structure needed to say what moral reasoning already tries to say.