「‍」 Lingenic

Uniform Proofs

(⤓.md ≡ ◇.md); γ ≜ [2026-07-17T135416.643, 2026-10-22T054143.488] ∧ |γ| = 3

Uniform Proofs

Origin. Miller, Nadathur, Pfenning, Scedrov introduced uniform proofs (1991). Characterizes logic programming proof search. Goal-directed: right rules applied eagerly. Hereditary Harrop formulas: logic programming in higher-order setting. Foundation for λProlog.

Models. Goal-directed proof search. Resolution: bottom-up, clause-based. Uniform proofs: top-down, goal-directed. Right rules applied uniformly until atomic. Characterizes operational semantics of logic programming.

Formalism.

Uniform proof: A proof where right (goal) rules are applied eagerly. Atomic goals resolved against program.

Goal formulas (G) — first-order Horn: G ::= ⊤ | A | G₁ ∧ G₂ | G₁ ∨ G₂ | ∃x.G

Definite formulas (D): D ::= A | G ⊃ A | D₁ ∧ D₂ | ∀x.D

Hereditary Harrop formulas: Larger fragment, obtained by admitting implication and universal quantification in goals — which the Horn grammar above deliberately excludes, since those two clauses are exactly what is being added: G ::= ⊤ | A | G₁ ∧ G₂ | G₁ ∨ G₂ | ∃x.G | D ⊃ G | ∀x.G D ::= A | G ⊃ A | D₁ ∧ D₂ | ∀x.D (unchanged)

The two new goal clauses are what give λProlog its module and scoping behaviour: proving D ⊃ G augments the program with D for the duration of G, and proving ∀x.G introduces a fresh constant. Neither is available in the Horn fragment, where the program is fixed throughout the search.

Uniform proof condition: Every right (goal) rule applied until atomic. Then prove atom from program (backchain).

Backchaining: Δ ⊸ A (atom A proved from program Δ). Match A with clause head, prove body uniformly.

Abstract logic programming: Language ⟨D, G, ⊸⟩ is abstract logic programming language if: Δ ⊢ G iff uniform proof exists.

λProlog: Higher-order hereditary Harrop. Adds λ-terms, higher-order unification.

Symbols.

SymbolUnicodeNameMeaning
⊢U+22A2Turnstile / DerivabilityΔ ⊢ G: the goal G follows from the program Δ
⊸U+22B8Multimap / BackchainingHere: an atom resolved against a clause head
⊃U+2283Superset of / ImplicationClause implication G ⊃ A, and D ⊃ G in Harrop goals
∧U+2227ConjunctionSplits a goal into subgoals
∨U+2228DisjunctionBranches a goal; a choice point in search
∀U+2200Universal quantifierIn clauses always; in goals only for hereditary Harrop
∃U+2203Existential quantifierGoal quantifier, witnessed by unification
⊤U+22A4Top / TruthThe immediately satisfied goal
λU+03BBLambdaTerm-level abstraction in λProlog
ΔU+0394Delta / ProgramThe clause database, extended by D ⊃ G goals
⟨ ⟩U+27E8, U+27E9Angle bracketsEnclose the triple defining an abstract logic programming language
G—Goal formulaRight-hand side of the search judgment
D—Definite formulaProgram clause
::=—Grammar productionDefines the goal and clause fragments

Metatheory. Miller, Nadathur, Pfenning and Scedrov (1991) defined an abstract logic programming language as a triple of definite formulas, goal formulas and a provability relation in which a goal is derivable from a program exactly when it has a uniform proof, and proved that first-order and higher-order hereditary Harrop formulas satisfy the condition while full intuitionistic logic does not — p ∨ q ⊢ p ∨ q is derivable but has no uniform proof, since uniformity forces the disjunction rule and neither disjunct alone follows. The theorem is what makes goal-directed search a complete strategy rather than a heuristic; it is proved by permuting rules in cut-free sequent derivations, so it rests on cut elimination for the ambient logic. The notion extends downward into linear logic: Hodas and Miller (1994) showed the fragment Lolli is an abstract logic programming language, and Miller's Forum (1996) presents all of linear logic as one using multiple-conclusion uniform proofs. In focusing terms a uniform proof is a focused proof with every atom negative.

Applies to. Logic programming foundations. λProlog language. Theorem proving. Type inference. Logical frameworks. Meta-programming.

Limitations. Uniformity is a property of a fragment, not of a logic: outside hereditary Harrop the equivalence fails, so classical logic, intuitionistic logic with disjunctive or existential program clauses, and any language wanting negation as a connective rather than as failure all fall outside, and each new connective demands a fresh completeness proof. The higher-order case gains expressiveness and loses decidability — λProlog needs higher-order unification, undecidable by Huet's theorem, so implementations restrict to Miller's pattern fragment and defer the rest as constraints, which makes the operational semantics depend on a solver rather than on the calculus. Goal-directed search is complete without being efficient: the choice of clause stays don't-know nondeterministic, and the depth-first execution actually implemented is incomplete, so implementations are unfaithful to the theorem that justifies them.

© 2026 Lingenic LLC