Encyclopedia Foundation Foundation Primitive Recognition Calculus Trace Logic And Intro
ARTICLE 2 claims 2 theorems
Foundation Primitive Recognition Calculus Trace Logic And Intro
A small logical rule about combining two observations into one, and the careful boundary of what it proves.
The conjunction rule
In logic, conjunction is the operation that combines two statements into one: if it is true that it is raining and it is true that the street is wet, then the combined statement "it is raining and the street is wet" is also true. The declaration and_intro in the Recognition Science framework's machine-checked library of formal theorems establishes exactly this rule for a special kind of statement called a stable trace predicate. A trace is a finite record of events, and a trace predicate is a property that can be checked against such a record. The word "stable" means the property persists: if it holds for one trace, it continues to hold for any longer trace that extends it.
The theorem states that if two stable trace predicates P and Q each hold on a trace T, then the conjunction of P and Q also holds on T. This is not a new idea; it is the standard introduction rule for conjunction, familiar from any introductory logic course. What makes it noteworthy here is the setting. The framework builds its foundational calculus on these stable predicates, and this theorem is one of the basic tools that lets it combine separate observations into a single compound observation while preserving stability. The proof is immediate from the definitions: the conjunction predicate holds exactly when both components hold, and stability of the conjunction follows because each component is itself stable.
The declaration does not claim that any particular trace predicate is true. It does not assert that any specific event occurs, nor that any property holds of any actual trace. It only says that if two properties hold, their conjunction holds. It also does not claim that the conjunction of two stable predicates is the only way to combine them; the framework separately defines disjunction, implication, negation, and quantifiers, each with its own rules. The theorem is a structural fact about the logical system the framework uses, not a claim about the world.
For a reader encountering the framework for the first time, this theorem is a small but necessary brick. It shows that the framework's logic behaves in the expected way when combining observations, which is a prerequisite for building larger arguments. Without such a rule, the framework could not assemble complex statements from simpler ones. Its presence is a checkmark in the foundation: the basic logical machinery works as logic should.
THEOREM and_intro · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/TraceLogic.lean
theorem and_intro {P Q : TracePredicate} {T : Trace}
(hP : P.holds T) (hQ : Q.holds T) :
(and P Q).holds T := by
exact ⟨hP, hQ⟩
THEOREM TracePredicate · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/TraceLogic.lean
/-- A proposition in the first PRC logic pass is a predicate on finite traces
that persists under trace extension. -/
structure TracePredicate where
holds : Trace → Prop
stable :
∀ {T U : Trace}, Trace.Extends T U → holds T → holds U
What this page does not claim
This answer does not claim that any particular trace predicate is true of any actual trace. This answer does not claim that conjunction is the only way to combine stable trace predicates. This answer does not claim that the framework's logic is the same as classical logic in all respects.
Verify this page
Every tagged claim above names its theorem. To check one yourself rather than trust this page, elaborate the source module with Lean 4 and audit its axiom basis:
$ lake env lean IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/TraceLogic.lean
expected axiom basis: [propext, Classical.choice, Quot.sound] (the Lean kernel's standard three; no RS-specific axioms)
A page whose claims cannot be reproduced this way does not ship. In production, every anchor links to the exact declaration in the public source release, and this block carries the build receipt for the page itself.
Derived articles
This page is generated by a question-recursion engine: the questions its answers raise become the next pages. The current agenda, with open targets marked red:
- How do the other logical connectives, such as implication and negation, behave in this trace-based setting?
- What larger arguments in the framework rely on this conjunction rule as a building block?
- What is the relationship between stable trace predicates and the framework's concept of a ledger of recognition events?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM and_intro · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/TraceLogic.lean
theorem and_intro {P Q : TracePredicate} {T : Trace} (hP : P.holds T) (hQ : Q.holds T) : (and P Q).holds T := by exact ⟨hP, hQ⟩The theorem states that if two stable trace predicates P and Q each hold on a trace T, then the conjunction of P and Q also holds on T. and_intro · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/TraceLogic.leanTHEOREM TracePredicate · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/TraceLogic.lean
/-- A proposition in the first PRC logic pass is a predicate on finite traces that persists under trace extension. -/ structure TracePredicate where holds : Trace → Prop stable : ∀ {T U : Trace}, Trace.Extends T U → holds T → holds UA trace predicate is a property that can be checked against a finite record of events, and stable means the property persists under trace extension. TracePredicate · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/TraceLogic.lean