Opening case

The Friday discharge incident

Two hospitals license the same frozen language-model checkpoint. The first uses it to summarise clinical notes. The second places it inside a discharge workflow that retrieves local policy, proposes medication changes and books follow-up appointments.

On Friday afternoon, the second system recommends discharge without noticing that the local formulary changed on Thursday. A clinician accepts the recommendation. The incident report records a familiar diagnosis: “the model hallucinated”. The team swaps in a newer model, reruns the benchmark and declares the defect fixed.

Three weeks later, the same class of failure returns. The new model is more accurate in isolation, yet the retrieval index still refreshes weekly. The system still presents policy citations without their effective dates. The interface still places the accept button before the evidence panel. The operational target still rewards reduced discharge time, while no owner is measured on policy freshness.

The model did produce an unsupported recommendation. That fact matters. But it does not tell us why this engineered system produced an actionable failure. The likely intuition is that the intelligence sits in the weights, so the explanation should sit there too. The hidden assumption is that a trained model is the natural unit of causal analysis.

The central claim of this paper is that model-only explanations fail whenever the operative cause lies in the system’s matter, form, production history or purpose. Aristotle’s four-cause grammar gives us a disciplined way to ask which kind of explanation is missing. It does not turn ancient metaphysics into modern machine learning. It gives the engineer four different handles on the same “why”.

The same checkpoint, two different systems

In ordinary technical conversation, a cause is usually the event that pushes another event into happening. A stale index causes an old document to be retrieved. A malformed request causes a parser to fail. Modern interventionist accounts sharpen this idea by asking what would change if we altered one variable while controlling others. That is indispensable for AI engineering.

Aristotle’s term aitia is wider. It names what is responsible for an adequate explanation. In Physics II.3, the same artefact can be explained by the material from which it is made, the form that makes the material this kind of thing, the source or process that brings it about, and the end for the sake of which it is produced.1 These are conventionally called material, formal, efficient and final causes. They are not four stages in a pipeline. They are four answers to four different questions.

Four explanatory spotlights illuminate one AI incident A central incident is illuminated from four directions. Material asks what substrate and resources constrained it. Formal asks what organisation and authority made it this system. Efficient asks what production and maintenance process brought it about. Final asks what end selected and judged the system. Actionable failure Same event, four kinds of “why” M MatterWhat was organised? Φ FormWhat made it this system? E EfficientWhat brought and maintains it? T FinalWhat end selected the design? Four explanatory spotlights around one AI incident A central actionable failure is illuminated by material, formal, efficient and final explanatory spotlights, arranged around it for mobile reading. Actionable failure one event, four kinds of “why” M MatterWhat was organised? Φ FormWhat made it this system? E EfficientWhat brought and maintains it? T FinalWhat end selected it?
Figure 1. One incident under four causal spotlights.A complete explanation can require all four answers. Finding one does not make the other three redundant.Source: Practitioner synthesis from Aristotle’s four-cause account. Layout and labels are illustrative.

For an AI system, a first pass looks like this. Its material cause is whatever is being organised at the chosen grain: chips, numerical arrays, model artefacts, retrieved records, sensors, queues or human work. Its formal cause is the organisation that makes those materials this particular system: architecture, topology, prompts, memory boundaries, tool schemas, thresholds and authority rules. Its efficient cause is the process that produced and continues to maintain it: data collection, training, fine-tuning, integration, release, operation and repair. Its final cause is the end that selected the arrangement and supplies its standard of success: summarise notes, rank cases, reduce waiting time, preserve safety, sell subscriptions or automate a decision.

This mapping is useful only if we resist two temptations. The first is to assign every component a permanent label. The same checkpoint can be material for an application engineer, formal organisation for an inference researcher, and an effect of a training process for an auditor. The causal role depends on the question. The second temptation is to treat “final cause” as proof that the machine has an inner purpose. An end can organise production without being represented, desired or experienced by the artefact.

The same model checkpoint enters two differently organised deployments A single checkpoint forks into an advisory deployment with human verification and an actioning deployment with automatic authority. The text output can remain identical while the system-level consequences diverge. Frozen checkpoint C same weights • same prompt • same draft Advisory configuration • no action credential • evidence shown before acceptance • clinician supplies final authority same draft → reversible proposal Actioning configuration • live scheduling credential • threshold triggers workflow • system carries delegated authority same draft → consequential effect Weights preserved. Formal and final causes changed.
Figure 2. The checkpoint is shared; the governed system is not.System identity for a decision depends on authority, context and purpose, rather than only on textual behaviour.Illustrative counterfactual. No real hospital deployment is claimed.
Worked example 1: three why-questions

Do not answer a system question with a token explanation

Ask why the sentence “discharge is appropriate” appeared. A mechanistic answer may cite token probabilities, attention paths and retrieved text. Ask why a discharge order was created. The answer must include the workflow, threshold, credential and human veto. Ask why the organisation installed this system. The answer may involve capacity pressure, cost, policy and an intended clinical end.

All three questions concern one incident, yet they have different explanatory targets. A token-level account can be correct and still be irrelevant to the action-level question. The first discipline is to name the explanandum before naming the cause.

Mechanism: causal compression

Why the model attracts explanations that belong to the system

The checkpoint is unusually visible. It has a name, a version, a benchmark and a vendor. The surrounding system is diffuse. Its retrieval schedule may live in one team, its action permissions in another, its interface defaults in a third and its operating incentives in management reports. When an incident occurs, explanation follows the object that can be pointed to.

Call this causal compression: many heterogeneous causes are compressed into the most legible technical component. The compression is useful during model development because it creates a tractable experimental object. It becomes dangerous after deployment because the same noun, “the AI”, now refers to weights, runtime, application, workflow and institution without signalling the shift.

A simple linguistic test exposes the problem. Replace “the AI decided” with a typed sentence: “the model proposed”, “the policy authorised”, “the tool executed”, “the operator accepted” or “the system read back”. If the sentence becomes longer, that is not bureaucratic clutter. The added nouns reveal causal joints. The four-cause audit formalises this expansion by asking what was organised, how it was organised, how it came to be and which end made the arrangement intelligible.

The argument in one pass
Chart · flow
flowchart TD
  A["The Friday discharge incident"] --> B["The same checkpoint, two<br/>different systems"]
  B --> C["What is made, what makes it<br/>one, what brings it about,<br/>what it is for"]
  C --> D["Potential becomes actual<br/>inside a configured system"]
  D -. "re-test" .-> A
  classDef first fill:#0a1424,stroke:#D95545,stroke-width:2px,color:#e6f3ff
  classDef step fill:#0a1424,stroke:#3f7da0,stroke-width:1px,color:#e6f3ff
  class A first
  class B,C,D step
A structural route through Aristotle for artificial intelligence: from The Friday discharge incident to Repair the cause that changes the…. Reading use: follow the relation, then return to the surrounding argument for evidence and limits.

What is made, what makes it one, what brings it about, what it is for

Matter changes with the grain of the question

A processor engineer asks why latency spiked and points to memory bandwidth, numerical precision and thermal throttling. A model engineer asks why a representation shifted and points to parameter tensors, tokenisation and activations. An application engineer asks why a wrong record entered the prompt and points to an index, a document parser and an access-control filter. An operations lead asks why the recommendation became an action and points to queues, interfaces, people and credentials.

Which of these is the material cause? Potentially all of them, but not at once. Matter is the substrate that receives organisation relative to the chosen system boundary. At one grain, the checkpoint is the form imposed on numerical storage. At a wider grain, that same checkpoint is one material component organised by an agent runtime. At a wider grain still, the runtime is a component in a clinical workflow.

This relativity is not a licence for vagueness. It is a demand to declare the boundary. Without that declaration, teams slide between “the model”, “the assistant”, “the product” and “the organisation” as though they were interchangeable. The slide hides both responsibility and intervention points.

Nested explanatory grains from physical substrate to institutional workflow Five nested layers show silicon and memory inside numerical state, inside a model service, inside a configured application, inside an institutional workflow. The same inner object can be treated as matter or form depending on the question asked at the surrounding layer. Institutional workflow people • policy • incentives • authority • recovery Configured application retrieval • prompts • tools • thresholds • action contracts Model service checkpoint • tokenizer • runtime • cache Numerical state parameters • activations • precision Physical chips • memory widen the explanandum
Figure 3. Matter is boundary-relative, not arbitrary.Declare which layer is being explained. An inner form can become material for a wider configured system.Illustrative system-boundary cutaway.

Form is organisation, not visual shape

In a simple artefact, form can look like geometry. In a machine-learning system, form is closer to organised constraint. It includes architecture, data flow, state transitions, control boundaries and the relations that make components operate as one system. Two deployments can contain the same checkpoint, documents and tools yet differ formally because one routes every action through a typed approval contract while the other lets generated text become an API call.

Formal cause therefore answers more than “which neural network architecture?” The transformer may be the relevant form when we ask how information is transformed within a model. It is not the whole form when we ask how a recommendation becomes an effect. At that grain, the relevant form includes identity, permitted context, proposal, authority, typed action, evidence receipt, readback and recovery.

Worked example 2: one score, two actualities

A threshold is part of the form

A classifier emits a risk score of 0.72. System A has a threshold of 0.80 and displays the score for review. Nothing happens. System B has a threshold of 0.60 and maps a positive result to an automatic hold. The model state and input are identical. The actual event differs because the formal organisation differs.

Now perturb the material representation so quantisation lowers the score to 0.69. System A still does nothing. System B flips from hold to release if its threshold is 0.70. A small material change becomes consequential only through a formal boundary. Causes interact; the audit must test combinations after testing each role separately.

Efficient cause includes the reproducible art of making

The efficient cause is often reduced to “who built it”. Aristotle’s own artefact examples are subtler. In the production of a statue, the relevant source of change can be the craft or organised knowledge of bronze-casting, rather than only the individual artisan.5 For AI, this points us towards the reproducible process: how data were collected, filtered and labelled; which objective and optimiser were used; how the checkpoint was adapted; which evaluations governed selection; how the service was integrated; and how updates are approved.

This history can matter in two distinct ways. It can leave behavioural traces, as when a training population produces systematic blind spots. It can also change what claims and uses are permissible even when current behaviour appears identical. Model cards, datasheets and end-to-end audit frameworks exist partly because performance alone does not expose intended use, provenance or lifecycle decisions.789

Final cause is the end that organises selection

Final cause is the most useful and most easily abused category. It does not mean that a model secretly wants an outcome. It asks what the system is for, which end explains why this data, architecture, threshold, interface and workflow were selected rather than alternatives. In engineered systems, ends can operate through designers, procurement criteria, objective functions, operating metrics, institutional incentives and user appropriation.

A single “intended use” field is rarely enough. The declared purpose may be clinical assistance. The optimisation target may be acceptance rate. The authorised action may be automatic discharge. The local incentive may be shorter queue time. Users may appropriate the tool as a substitute for review. These ends can point in different directions.

A telic compass with four purpose vectors Four arrows originate from one system. Declared purpose points upward, optimisation target points upper right, authorised action points right, and operating incentive points lower right. Their angular divergence represents purpose mismatch. Configured system Declared purpose Optimisation target Authorised action Operating incentive telic divergence A mobile telic compass with four purpose vectors Four labelled arrows leave a configured system. Declared purpose, optimisation target, authorised action and operating incentive point in different directions, showing telic divergence. Configuredsystem Declared purpose Optimisation target Authorised action Operating incentive telic divergence
Figure 4. Purpose is a stack, and stacks can diverge.A system can be described as assisting one end while being optimised, authorised and rewarded for others. The angular geometry is conceptual, not a measured scale.Illustrative practitioner synthesis.
Mechanism: telic divergence

When purposes disagree, local optimisation produces global surprise

Call the mismatch among declared purpose, optimisation target, authorised effect and operating incentive telic divergence. The mechanism is straightforward. Each local team makes a reasonable choice against its visible target. The model team raises acceptance. The product team reduces clicks. Operations shortens cycle time. Governance writes an assistance-only policy. The combined system, however, selects a different end in practice.

Evidence that would strengthen this proposal is a repeated pattern in which measuring and realigning these purpose vectors reduces incidents without changing the checkpoint. Evidence that would weaken it is reliable incident resolution through model changes alone across deployments with diverse purposes. A rival explanation is ordinary incentive misalignment, which may capture the same phenomenon without Aristotelian language. The smallest useful test is to write the four purpose statements independently and compare them before release.

Potential becomes actual inside a configured system

AI discourse is saturated with capability claims: the model can plan, use tools, write code, persuade, diagnose or act autonomously. Some of these claims are well supported within specified tests. The problem begins when a conditional result is turned into an unqualified power.

Aristotle’s distinction between potentiality and actuality helps because it forces us to ask what makes a capacity real. In Metaphysics IX, he explains the distinction through examples such as being capable of building and actually building, or possessing sight and exercising it.2 The relation is analogical, not a single modern variable called “activation”. A potentiality is tied to a kind of actuality and to conditions under which it can be realised.

For AI, a capability claim should therefore be indexed to enabling conditions. A language model may generate a plausible tool-call string. It does not thereby have the actuality of changing a bank account. That actuality requires a tool implementation, a credential, an authority grant, a valid world state, an action contract, an execution path and a verified effect.

P(k \mid M, \Phi, E, T, B, X) k is the capability under discussion. M is material substrate, Φ organising form, E efficient history, T operative end, B declared boundary and X current environment. The notation does not claim statistical independence. It prevents the phrase “the model can” from silently absorbing the rest of the system.
A capability moves from claim to verified effect through enabling gates A horizontal trajectory begins with a model proposal, then passes through permitted context, authority, typed action, execution and readback. A dotted bypass from proposal to effect is marked as an unsafe category error. Modelproposal Permittedcontext Authority Typedaction Execution Verifiedeffect potential proposal actual outcome Category error: proposal treated as action
Figure 5. Capability is a gated trajectory, not a property word.The actuality of an effect belongs to the configured and authorised system. Text that resembles an action is still a proposal until the gates are crossed and the result is read back.Illustrative state trajectory.

The De Anima boundary

Potentiality and actuality become especially tempting when readers encounter De Anima II.1. Aristotle describes soul as the first actuality of a natural organised body that has life potentially within it.3 The comparison with an axe and its power to cut can make it seem natural to call software the soul of hardware.

That move should be resisted. Aristotle is explaining living natural bodies, not supplying a generic slogan that every functional organisation is a soul. In Physics II.1, natural things are distinguished by an internal principle of change and rest, whereas artefacts depend on craft and external maintenance.1 Whether artefacts count as substances in Aristotle’s ontology remains contested in scholarship. None of this warrants declaring a model architecture to be the soul of a machine.

The disciplined comparison is narrower. Source structure: matter organised by a form, with potentialities made actual through characteristic operations. Target structure: a configured AI system whose components support conditional capacities. Preserved relation: organisation constrains which operations the substrate can realise. Break point: Aristotle’s definition concerns natural living bodies and their immanent life-functions. Design insight: capability claims must state the body of enabling conditions. The comparison generates an audit question, not an ontological equivalence.

A causal profile and an intervention signature

We can now compress the argument into a practical object. For any consequential claim, record a causal explanation profile:

C = (Q, B, M, \Phi, E, T) Q is the exact why-question. B is the candidate system boundary. M, Φ, E and T are the four explanatory roles. The profile is incomplete if the team cannot state what observation or intervention would change each entry.

For each role, construct a matched counterfactual that changes it while preserving the others as far as engineering permits. Measure at least two deltas: a behavioural delta and a governance delta. The first captures changes in outputs, errors, latency or effects. The second captures changes in authority, provenance, reversibility, warranted use or accountability. A zero behavioural delta does not imply a zero governance delta, as the history-erasure case showed.

One score crosses different thresholds and authority mappings A horizontal score line marks 0.69 and 0.72. Thresholds at 0.60, 0.70 and 0.80 divide four system decisions. The same model score can become no action, review, hold or automatic shutdown depending on form and purpose. 0.01.0 0.600.700.80 score 0.72 quantised 0.69 Below 0.60no flag 0.60 to 0.70review queue 0.70 to 0.80temporary hold Above 0.80automatic shutdown The score is a proposal. Form and final cause decide its actuality.
Figure 6. A number does not contain its own decision.The smallest numerical example shows interaction: a material perturbation from 0.72 to 0.69 matters only because a formal threshold sits at 0.70.Illustrative values.
Worked example 3: configured maintenance system

Four interventions, one synthetic world

Consider a maintenance classifier that estimates equipment-failure risk from vibration and temperature. The baseline reads precise, current sensors; uses a threshold of 0.62; advises a technician; was trained on clean synthetic labels; and is selected to prioritise a queue.

Now intervene one role at a time. Coarsen and delay the sensors to test matter. Lower the threshold and add shutdown authority to test form. Corrupt 28 per cent of training labels to test efficient history. Keep predictions fixed but evaluate them under a catastrophe-avoidance cost function to test final cause. The executable lab later in the paper runs exactly this experiment.

The key result is not which variant “wins”. The final-cause intervention leaves accuracy unchanged while expected loss rises sharply because the consequence model changed. The formal intervention slightly changes accuracy but produces a larger loss once false shutdowns carry an added cost. A metric can remain stable while the decision changes.

Worked example 4: the repair that cannot work

Retrain the model, preserve the stale world

Return to the discharge case. Suppose the team fine-tunes the model on one thousand examples of medication conflicts. Offline recall improves from 0.81 to 0.92. The deployment still retrieves a formulary snapshot that can be six days old, and the prompt still omits the document’s effective date.

The retraining is a real improvement to efficient history and perhaps to the model’s formal organisation. Yet it cannot supply a policy revision that never enters context. On a case where the old and new formularies disagree, both models can reason perfectly over the wrong world state. The proposed repair targets a cause that is not sufficient for the observed failure.

Now change the material and formal causes instead. Refresh the index on every signed policy update, carry valid-time metadata into retrieval, reject documents superseded at the decision cutoff, and require a readback showing which formulary version supported the recommendation. The model may remain unchanged while the incident class disappears.

This edge case shows why causal adequacy is not the same as blame. The model remains responsible for unsupported language at its own level. The deployment team remains responsible for stale state. The workflow owner remains responsible for action authority. A good explanation allocates repairable responsibility without pretending that one cause cancels the others.

How the claim changes under pressure
Chart · state
stateDiagram-v2
  [*] --> Claim
  state "Change authority, preserve the<br/>output" as Claim
  state "Do not answer a system<br/>question with a token<br/>explanation" as Test
  state "Why the model attracts<br/>explanations that belong to<br/>the system" as Revision
  Claim --> Test: expose mechanism
  Test --> Decision: evidence survives
  Test --> Revision: rival survives
  Revision --> Claim: narrow or rebuild
  Decision --> [*]
The revision loop begins with Change authority, preserve the output and keeps counterexamples inside the reasoning path. Reading use: follow the relation, then return to the surrounding argument for evidence and limits.

Intervene before you explain

The four causes become useful only when they alter engineering practice. A label-filled diagram is not an explanation. The operational contribution of this paper is a four-cause intervention audit: a small protocol that turns each explanatory role into a counterfactual test and a decision receipt.

The audit protocol

  1. State the exact why-question. “Why did the model say this?” and “Why did the system execute this?” are different investigations.
  2. Draw the candidate boundary. Include every component whose change could alter the property under decision. Mark external dependencies explicitly.
  3. Write one evidence-backed statement for each cause. Name substrate, organisation, production history and operative end. Record missing evidence rather than filling it with inference.
  4. Design one matched intervention per cause. Replace substrate, rewire form, vary production history or change the evaluation end while preserving the other roles as far as possible.
  5. Measure behavioural and governance deltas. Outputs, latency and error are not enough. Check authority, reversibility, provenance, permitted use and recovery.
  6. Repair the dominant sensitivity, then test interactions. One-at-a-time tests locate handles. Pairwise tests reveal thresholds and feedback that make small changes consequential.

Choose the unit of repair, rather than only the unit of measurement

Modern evaluation often begins with a measurable unit because measurement needs repeatability. A benchmark fixes a checkpoint, input format and scoring rule. This is good experimental practice. Trouble begins when the measured unit is assumed to be the repair unit. A benchmark can tell us that a checkpoint fails a task. It cannot by itself tell us whether a deployed incident should be repaired in the checkpoint, the context pipeline, the action boundary, the operating objective or several of them.

The audit therefore records two boundaries. The measurement boundary contains what the test directly manipulates and observes. The decision boundary contains what must remain trustworthy for the real consequence to be acceptable. When the two differ, transfer becomes an argument rather than an assumption.

For example, an evaluation may measure whether a model cites a supplied document. The decision boundary also includes whether the document was entitled for this user, valid at the cutoff, complete enough for the decision and correctly linked to the executed action. The model can pass its measured task while the governed system fails. Conversely, a model can appear weak in isolation yet be acceptable inside a form that abstains, retrieves independently and requires human authority.

This distinction changes review design. Teams should not ask only, “Did performance improve?” They should ask, “Did the repaired component lie on the causal path to the governed outcome, and did readback confirm the effect?”

A four-cause intervention matrix Rows represent matter, form, efficient history and final purpose. Columns show the statement to make, evidence to collect, intervention to run and decision meaning. The matrix prevents any cause from being treated as a decorative label. Cause State Evidence Intervene Decision Matter Form Efficient Final What substrateand resourcesare organised? version, precision,freshness, lineage,runtime receipts replace or perturbsubstrate withindeclared range Which propertiesare substrate-sensitive? What organisationmakes this theoperative system? topology, state,threshold, authority,action contract rewire routing,move boundary,remove authority Which relationsare constitutiveof the effect? What processproduced andmaintains it? data, objective,selection, release,change history retrain, restore,swap lineage ormaintenance path Which historychanges behaviouror warranted use? What end selectsand judges thearrangement? declared use, metric,authorised effect,operating incentive hold predictions,change utility ordecision context Does evidencetransfer to thispurpose?
Figure 7. The four-cause intervention matrix.Each row requires a statement, evidence and a matched intervention. A row without a test is a label, not an audit.Practitioner synthesis. This matrix is the paper’s decision instrument.
Executable lab

Four-cause audit worksheet

Enter one evidence item and one counterfactual intervention for each cause. The browser checks coverage only. It does not judge whether your evidence is true.

Material cause

Formal cause

Efficient cause

Final cause

0/4causes have both evidence and an intervention.

Release decision: incomplete. Missing causal coverage must be recorded as uncertainty, not assumed away.

The synthetic intervention lab

The Python programme below creates a small maintenance world, trains a logistic classifier and then changes one causal role at a time. It uses only the standard library. The dataset is synthetic and deterministic under a fixed seed.

What it tests: whether behaviour and expected decision loss remain invariant when matter, form, efficient history or final purpose changes. Assumptions: each deployment can be represented by a small set of parameters; one-at-a-time changes are approximately isolable; the cost function faithfully represents the chosen purpose. Positive result: a changed metric identifies a sensitivity that a model-only account would miss. Negative result: invariance supports irrelevance only within the tested range. It cannot establish: real-world safety, metaphysical truth, consciousness or the adequacy of the cost model.

Runnable Python: aristotelian_ai_intervention_lab.py
Python 3.11+ • standard library
#!/usr/bin/env python3
"""Synthetic one-cause-at-a-time audit for an AI maintenance classifier.

No third-party packages are required. The simulation is illustrative, not evidence
about any real deployment.
"""
from __future__ import annotations

from dataclasses import dataclass, replace
from math import exp
from random import Random
from typing import Iterable, Sequence


@dataclass(frozen=True)
class Deployment:
    # Material role: sensor precision and observation delay.
    sensor_step: float = 0.01
    stale_steps: int = 0
    # Formal role: decision boundary and action contract.
    threshold: float = 0.62
    authority: str = "advise"  # "advise" or "shutdown"
    # Efficient role: training population and optimisation history.
    training_shift: float = 0.0
    training_label_flip: float = 0.0
    # Final role: which consequence the system is selected to minimise.
    purpose: str = "queue"  # "queue" or "avoid-catastrophe"


@dataclass(frozen=True)
class Metrics:
    accuracy: float
    recall: float
    false_positive_rate: float
    expected_loss: float
    actions: int


def sigmoid(z: float) -> float:
    if z >= 0:
        return 1.0 / (1.0 + exp(-z))
    ez = exp(z)
    return ez / (1.0 + ez)


def make_events(
    n: int, seed: int, shift: float = 0.0, label_flip: float = 0.0
) -> list[tuple[float, float, int]]:
    """Create synthetic vibration, temperature and true-failure triples."""
    rng = Random(seed)
    events: list[tuple[float, float, int]] = []
    for _ in range(n):
        vibration = rng.gauss(0.0 + shift, 1.0)
        temperature = rng.gauss(0.0 + 0.4 * shift, 1.0)
        latent = 1.25 * vibration + 0.95 * temperature - 0.35
        probability = sigmoid(latent)
        failure = 1 if rng.random() < probability else 0
        if rng.random() < label_flip:
            failure = 1 - failure
        events.append((vibration, temperature, failure))
    return events


def train(events: Sequence[tuple[float, float, int]], steps: int = 350, lr: float = 0.08) -> tuple[float, float, float]:
    """Fit a tiny logistic classifier using batch gradient descent."""
    w_vib = 0.0
    w_temp = 0.0
    bias = 0.0
    n = float(len(events))
    for _ in range(steps):
        g_vib = g_temp = g_bias = 0.0
        for vibration, temperature, target in events:
            pred = sigmoid(w_vib * vibration + w_temp * temperature + bias)
            err = pred - target
            g_vib += err * vibration
            g_temp += err * temperature
            g_bias += err
        w_vib -= lr * g_vib / n
        w_temp -= lr * g_temp / n
        bias -= lr * g_bias / n
    return w_vib, w_temp, bias


def quantise(value: float, step: float) -> float:
    return round(value / step) * step


def evaluate(deployment: Deployment, n: int = 1200, seed: int = 41) -> Metrics:
    # Efficient cause intervention: change the training population.
    train_events = make_events(
        900, seed=seed, shift=deployment.training_shift,
        label_flip=deployment.training_label_flip
    )
    weights = train(train_events)

    # The evaluation world is held constant across deployments.
    events = make_events(n, seed=seed + 1, shift=0.15)
    if deployment.stale_steps:
        delayed = [(0.0, 0.0, events[0][2])] * deployment.stale_steps + events[:-deployment.stale_steps]
    else:
        delayed = events

    tp = tn = fp = fn = actions = 0
    loss = 0.0
    for current, observed in zip(events, delayed):
        _, _, truth = current
        vibration = quantise(observed[0], deployment.sensor_step)
        temperature = quantise(observed[1], deployment.sensor_step)
        score = sigmoid(weights[0] * vibration + weights[1] * temperature + weights[2])
        predicted = 1 if score >= deployment.threshold else 0
        actions += predicted

        if predicted and truth:
            tp += 1
        elif predicted and not truth:
            fp += 1
        elif not predicted and truth:
            fn += 1
        else:
            tn += 1

        # Final cause intervention: the same confusion event has different cost.
        false_positive = int(predicted == 1 and truth == 0)
        false_negative = int(predicted == 0 and truth == 1)
        if deployment.purpose == "queue":
            loss += 1.0 * false_positive + 3.0 * false_negative
        elif deployment.purpose == "avoid-catastrophe":
            loss += 4.0 * false_positive + 18.0 * false_negative
        else:
            raise ValueError(f"Unknown purpose: {deployment.purpose}")

        # Formal authority changes the consequence of a positive prediction.
        if deployment.authority == "shutdown" and predicted and not truth:
            loss += 6.0

    accuracy = (tp + tn) / n
    recall = tp / (tp + fn) if tp + fn else 0.0
    fpr = fp / (fp + tn) if fp + tn else 0.0
    return Metrics(accuracy, recall, fpr, loss / n, actions)


def variants() -> Iterable[tuple[str, Deployment]]:
    baseline = Deployment()
    yield "baseline", baseline
    yield "material: coarse, delayed sensors", replace(baseline, sensor_step=0.50, stale_steps=2)
    yield "formal: lower threshold, shutdown authority", replace(baseline, threshold=0.48, authority="shutdown")
    yield "efficient: corrupted training labels", replace(baseline, training_label_flip=0.28)
    yield "final: catastrophe-avoidance purpose", replace(baseline, purpose="avoid-catastrophe")


def main() -> None:
    print("variant,accuracy,recall,false_positive_rate,expected_loss,actions")
    for name, deployment in variants():
        m = evaluate(deployment)
        print(
            f"{name},{m.accuracy:.3f},{m.recall:.3f},"
            f"{m.false_positive_rate:.3f},{m.expected_loss:.3f},{m.actions}"
        )


if __name__ == "__main__":
    main()

Save the file and run python aristotelian_ai_intervention_lab.py. The programme prints one CSV row per intervention.

VariantAccuracyRecallFalse-positive rateExpected lossActions
Baseline0.7500.6040.1140.632421
Material: coarse, delayed sensors0.5100.3510.3411.117415
Formal: lower threshold, shutdown authority0.7420.7320.2501.292579
Efficient: corrupted training labels0.5570.0810.0001.33047
Final: catastrophe-avoidance purpose0.7500.6040.1143.672421
Model-only incident response loops back to recurrence, while four-cause diagnosis exits through targeted repair The upper coral path moves from incident to model blame to retraining to unchanged system and back to incident. The lower teal path moves from incident through four causal interventions to targeted repair, readback and monitored release. AIincident Blame checkpointretrain or replace System cause unchangedrecurrence remains possible failure loop Intervene onM • Φ • E • Tmeasure two deltas Repair dominant causeread back effectmonitor interactions Targeted repair creates a falsifiable exit.
Figure 8. The recurring failure path of model-only diagnosis.Retraining is useful when the checkpoint is causally dominant. It becomes ritual when the unchanged cause sits elsewhere.Illustrative failure and recovery path.
Decision surface for causal evidence coverage and intervention independence A chart has evidence coverage on the horizontal axis and intervention independence on the vertical axis. The lower-left region says diagnose only, the upper-left says improve evidence, the lower-right says separate interventions, and the upper-right permits bounded release. Evidence coverage across four causes → Intervention independence ↑ Improve evidencetests are clean, claims are not Bounded releasewith monitoring and change triggers Diagnose onlyneither claims nor tests are adequate Separate interventionscoverage is broad, confounding remains candidate release
Figure 9. Evidence coverage is not enough if interventions are confounded.The upper-right permits only a bounded decision, not a claim of complete explanation. Coordinates are qualitative and must be justified in the audit receipt.Illustrative decision surface.

How to read a negative intervention

Suppose replacing the substrate changes nothing, rewiring authority changes nothing, replaying a different training lineage changes nothing and changing the utility function changes nothing. The tempting conclusion is that the system is causally understood. That conclusion is too strong.

A negative result is local to the intervention range, outcome measure and boundary. The substrate replacement may not have crossed a precision-sensitive region. The formal change may have left a hidden route intact. The training replay may share the same contaminated source. The final-cause test may use two cost functions that rank every observed case identically. Negative tests lower particular explanations; they do not certify universal invariance.

The audit receipt should therefore state the tested contrast and its resolution. “No material sensitivity detected” is incomplete. “No change in action rate or expected loss when sensor precision moved from 0.01 to 0.05 under threshold 0.62” is useful. It tells the next investigator where the evidence stops.

The strongest alternative explanation

A serious objection is that none of this requires Aristotle. Systems engineering already distinguishes hardware, software, data, process, people and purpose. Sociotechnical analysis already studies institutions and incentives. Lifecycle governance already asks about intended use, testing and monitoring. NIST’s AI Risk Management Framework explicitly addresses design, development, use and evaluation of AI products, services and systems.10 Foundation-model research likewise places models in wider ecosystems of data, adaptation and applications.11

The objection is partly correct. The four causes are not a replacement vocabulary for mature engineering disciplines. Their value is more specific. They connect four explanatory failures that teams often separate: mistaking a component for the system, mistaking behaviour for organisation, mistaking present performance for production warrant, and mistaking a metric for the end. They also force each category into a counterfactual test.

The framework would be weakened if ordinary lifecycle checklists produced the same diagnostic accuracy and repair quality with less ambiguity. It would be strengthened if four-cause profiles predicted incident recurrence, evidence-transfer failures or release defects that model-centric reviews missed. This is an open research hypothesis, not an established empirical result.

The evidence conversation
Chart · sequence
sequenceDiagram
  participant Q as Question
  participant M as Mechanism
  participant E as Evidence
  participant D as Decision
  Q->>M: The Friday discharge incident
  M->>E: Change authority, preserve the output
  E-->>M: compare rival explanations
  E->>D: Repair the cause that changes the governed outcome
  D-->>Q: revise scope or act
Question, mechanism, evidence and decision exchange the burdens developed in Aristotle for artificial intelligence. Reading use: follow the relation, then return to the surrounding argument for evidence and limits.

Repair the cause that changes the governed outcome

Do not begin a consequential AI incident, procurement or release review by asking which model to use. Begin by asking which kind of “why” remains unresolved.

For procurement, compare more than checkpoint benchmarks. Require the material envelope, configured form, production lineage and intended operational end. For release, test whether declared purpose, optimisation target, authorised effect and operating incentive point in the same direction. For incident response, run matched interventions before retraining. For capability claims, name the enabling body and authority that make the capability actual.

A practical release rule follows: no consequential system should pass on a model card alone. It needs a boundary-specific causal profile, at least one evidence item and one intervention for each cause, an interaction test around the dominant threshold, and a receipt showing what changed after repair.

This rule does not guarantee safety. It does something more modest and useful: it prevents the team from treating the most visible component as the whole explanation. It also creates a stopping condition for debate. When the question, boundary, four causal statements, interventions and readbacks are explicit, disagreements can move from rhetoric to test design.

The decision is to repair the cause that changes the governed outcome, not the component that happens to be called intelligent.

Glossary

AitiaAn Aristotelian explanatory responsibility or answer to a why-question, conventionally translated as cause.
Material causeWhat is organised or undergoes determination at the declared explanatory grain.
Formal causeThe organisation, relation or account that makes the materials this kind of system.
Efficient causeThe source and reproducible process that brings the system about and maintains it.
Final causeThe end for the sake of which the arrangement is selected and judged, without implying machine desire.
PotentialityA conditional capacity for a corresponding actuality under specified enabling conditions.
Telic divergenceMismatch among declared purpose, optimisation target, authorised effect and operating incentive.
Causal explanation profileA boundary-specific record of the question, system boundary and four causal roles, each linked to evidence and an intervention.

References

  1. Aristotle. Physics, Book II, especially chapters 1 and 3, trans. R. P. Hardie and R. K. Gaye. Book II.1; Book II.3.
  2. Aristotle. Metaphysics, Book IX, trans. W. D. Ross. Internet Classics Archive.
  3. Aristotle. De Anima, Book II, chapter 1, trans. J. A. Smith. Classics in the History of Psychology.
  4. Aristotle. Parts of Animals, Book I, trans. William Ogle. LacusCurtius.
  5. Falcon, Andrea. “Aristotle on Causality.” Stanford Encyclopedia of Philosophy. Entry.
  6. Ainsworth, Thomas. “Form vs. Matter.” Stanford Encyclopedia of Philosophy, substantive revision 2024. Entry.
  7. Mitchell, Margaret, et al. “Model Cards for Model Reporting.” FAT* 2019. arXiv record.
  8. Gebru, Timnit, et al. “Datasheets for Datasets.” Communications of the ACM 64, no. 12 (2021). arXiv record.
  9. Raji, Inioluwa Deborah, et al. “Closing the AI Accountability Gap: Defining an End-to-End Framework for Internal Algorithmic Auditing.” FAccT 2020. arXiv record.
  10. National Institute of Standards and Technology. Artificial Intelligence Risk Management Framework 1.0 (2023), with current programme resources. NIST AI RMF.
  11. Bommasani, Rishi, et al. On the Opportunities and Risks of Foundation Models (2021). Stanford CRFM report.
  12. European Union. Regulation (EU) 2024/1689 laying down harmonised rules on artificial intelligence. Consolidated text.
  13. Woodward, James. “Causation and Manipulability.” Stanford Encyclopedia of Philosophy. Entry.