LR-001 · Core artifact

ProofGraph

A ProofGraph is what a LegalProof-compatible system emits instead of (or alongside) prose: a typed graph linking the claim to facts, authorities, rule paths, and defeaters, ending in a single conclusion status.

factf1factf2ruler1defeaterd1conclusionc1
Object model
ProofGraph·typescript
interface ProofGraph {
  nodes: ProofNode[];   // claim | fact | rule | authority | defeater | conclusion
  edges: ProofEdge[];   // typed inferential links
}

interface ReasonResponse {
  proof_id: string;
  conclusion: { status: ReasoningStatus; claim: string; confidence: number };
  proof_graph: ProofGraph;
  citations: Citation[];     // resolved AuthorityRefs (LR-002)
  defeaters: Defeater[];
  metadata: ReplayMetadata;  // LR-005
}
Lifecycle
  1. POST /v1/reasonBuild a ProofGraph from a query, facts, jurisdiction, and as-of date.
  2. POST /v1/verifyValidate a candidate claim against the conformance bar.
  3. POST /v1/explainRender a structured, attorney-reviewable explanation.
  4. GET /v1/proofs/{id}Replay any past proof by stable id.
  5. POST /v1/attestIssue a signed receipt under a redaction policy (LR-006).
  6. POST /v1/sources/resolveResolve raw references to canonical AuthorityRefs (LR-002).
Why a graph and not prose

Auditable

Every conclusion traces to facts and authorities, not to a model's vibes.

Replayable

Versioned engine, knowledge graph, and rulebase make outputs reproducible.

Defeasible

Exceptions, overrides, and superior authority are first-class objects.