Legal: Contract Logic Conflicts¶
Case study → legal
Contracts are logic systems. Treat them like logic systems.
Long agreements hide conflicts because obligations and exceptions are far apart. Chat summaries can be fluent while structurally wrong.
The question
How do we surface contradictions in long contracts where obligations and exceptions are far apart?
Why chat summaries fail
Structure is the point
Contracts are not prose; they are conditional rules with scope and precedence.
Conflicts are non-local
Clause A can silently contradict Clause B across sections and appendices.
No trace, no accountability
You need clause references and logic links, not just a summary paragraph.
Graph representation
Model clauses as nodes and dependencies/conflicts as edges.
This makes contradictions computable and reviewable.
graph LR;
A["Clause A: requires X"] --> X["X"];
B["Clause B: forbids X"] --> X;
A -. "conflict" .-> B;
Diagram: obligation/exception flow
flowchart TB;
C["Clause"] --> T["Type</br>(obligation / prohibition / exception)"];
T --> S["Scope + conditions"];
S --> L["Link to referenced clauses"];
L --> D["Detect conflicts"];
D --> R["Risk register + trace"];
Outputs
Conflict graph
Edges with clause references and conditions under which the conflict triggers.
Risk register
Prioritized issues with remediation suggestions and owner workflows.
Traceable justification
Every flag links back to clauses, sources, and logic edges.
Governance integration
Constraints can block prohibited actions and require legal escalation.