TauLib.BookI.MetaLogic.LinearDiscipline
TauLib.MetaLogic.LinearDiscipline
The Diagonal-Linear Correspondence: K5’s diagonal discipline maps onto the !-free fragment of Girard’s linear logic.
Registry Cross-References
-
[I.D78] Diagonal-Linear Correspondence —
DiagonalLinearCorrespondence -
[I.D79] Program Monoid as Linear Calculus —
ProgramLinearCalc -
[I.T37] Diagonal-Linear Correspondence Theorem —
diagonal_linear_correspondence
Mathematical Content
Three aspects of the correspondence:
-
K5.1 (no unearned diagonals) <-> no free contraction
-
K5.2 (channel consumption) <-> linear resource tracking
-
K5.3 (saturation) <-> finite resource budget Plus: NF-Confluence <-> cut-elimination, Truth4 <-> resource states
Tau.MetaLogic.LinearAspect
source inductive Tau.MetaLogic.LinearAspect :Type
The three aspects of linear logic that correspond to K5’s discipline.
- noFreeContraction : LinearAspect
- resourceTracking : LinearAspect
- finiteResourceBudget : LinearAspect Instances For
Tau.MetaLogic.instDecidableEqLinearAspect
source instance Tau.MetaLogic.instDecidableEqLinearAspect :DecidableEq LinearAspect
Equations
- Tau.MetaLogic.instDecidableEqLinearAspect x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Tau.MetaLogic.instReprLinearAspect
source instance Tau.MetaLogic.instReprLinearAspect :Repr LinearAspect
Equations
- Tau.MetaLogic.instReprLinearAspect = { reprPrec := Tau.MetaLogic.instReprLinearAspect.repr }
Tau.MetaLogic.instReprLinearAspect.repr
source def Tau.MetaLogic.instReprLinearAspect.repr :LinearAspect → ℕ → Std.Format
Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.MetaLogic.DiagonalAspect
source inductive Tau.MetaLogic.DiagonalAspect :Type
The three aspects of K5’s diagonal discipline.
- noUnearnedDiagonals : DiagonalAspect
- channelConsumption : DiagonalAspect
- saturation : DiagonalAspect Instances For
Tau.MetaLogic.instDecidableEqDiagonalAspect
source instance Tau.MetaLogic.instDecidableEqDiagonalAspect :DecidableEq DiagonalAspect
Equations
- Tau.MetaLogic.instDecidableEqDiagonalAspect x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Tau.MetaLogic.instReprDiagonalAspect.repr
source def Tau.MetaLogic.instReprDiagonalAspect.repr :DiagonalAspect → ℕ → Std.Format
Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.MetaLogic.instReprDiagonalAspect
source instance Tau.MetaLogic.instReprDiagonalAspect :Repr DiagonalAspect
Equations
- Tau.MetaLogic.instReprDiagonalAspect = { reprPrec := Tau.MetaLogic.instReprDiagonalAspect.repr }
Tau.MetaLogic.diag_to_linear
source def Tau.MetaLogic.diag_to_linear :DiagonalAspect → LinearAspect
The diagonal-to-linear map: each K5 aspect corresponds to a linear aspect. Equations
- Tau.MetaLogic.diag_to_linear Tau.MetaLogic.DiagonalAspect.noUnearnedDiagonals = Tau.MetaLogic.LinearAspect.noFreeContraction
- Tau.MetaLogic.diag_to_linear Tau.MetaLogic.DiagonalAspect.channelConsumption = Tau.MetaLogic.LinearAspect.resourceTracking
- Tau.MetaLogic.diag_to_linear Tau.MetaLogic.DiagonalAspect.saturation = Tau.MetaLogic.LinearAspect.finiteResourceBudget Instances For
Tau.MetaLogic.linear_to_diag
source def Tau.MetaLogic.linear_to_diag :LinearAspect → DiagonalAspect
The inverse map: each linear aspect corresponds to a K5 aspect. Equations
- Tau.MetaLogic.linear_to_diag Tau.MetaLogic.LinearAspect.noFreeContraction = Tau.MetaLogic.DiagonalAspect.noUnearnedDiagonals
- Tau.MetaLogic.linear_to_diag Tau.MetaLogic.LinearAspect.resourceTracking = Tau.MetaLogic.DiagonalAspect.channelConsumption
- Tau.MetaLogic.linear_to_diag Tau.MetaLogic.LinearAspect.finiteResourceBudget = Tau.MetaLogic.DiagonalAspect.saturation Instances For
Tau.MetaLogic.diag_linear_roundtrip
source theorem Tau.MetaLogic.diag_linear_roundtrip (d : DiagonalAspect) :linear_to_diag (diag_to_linear d) = d
Round-trip: diagonal -> linear -> diagonal is the identity.
Tau.MetaLogic.linear_diag_roundtrip
source theorem Tau.MetaLogic.linear_diag_roundtrip (l : LinearAspect) :diag_to_linear (linear_to_diag l) = l
Round-trip: linear -> diagonal -> linear is the identity.
Tau.MetaLogic.diag_to_linear_injective
source **theorem Tau.MetaLogic.diag_to_linear_injective (d1 d2 : DiagonalAspect)
(h : diag_to_linear d1 = diag_to_linear d2) :d1 = d2**
The bijection is injective in the forward direction.
Tau.MetaLogic.linear_to_diag_injective
source **theorem Tau.MetaLogic.linear_to_diag_injective (l1 l2 : LinearAspect)
(h : linear_to_diag l1 = linear_to_diag l2) :l1 = l2**
The bijection is injective in the inverse direction.
Tau.MetaLogic.allDiagonalAspects
source def Tau.MetaLogic.allDiagonalAspects :List DiagonalAspect
All diagonal aspects enumerated. Equations
- Tau.MetaLogic.allDiagonalAspects = [Tau.MetaLogic.DiagonalAspect.noUnearnedDiagonals, Tau.MetaLogic.DiagonalAspect.channelConsumption, Tau.MetaLogic.DiagonalAspect.saturation] Instances For
Tau.MetaLogic.allLinearAspects
source def Tau.MetaLogic.allLinearAspects :List LinearAspect
All linear aspects enumerated. Equations
- Tau.MetaLogic.allLinearAspects = [Tau.MetaLogic.LinearAspect.noFreeContraction, Tau.MetaLogic.LinearAspect.resourceTracking, Tau.MetaLogic.LinearAspect.finiteResourceBudget] Instances For
Tau.MetaLogic.diagonal_aspect_count
source theorem Tau.MetaLogic.diagonal_aspect_count :allDiagonalAspects.length = 3
There are exactly 3 diagonal aspects.
Tau.MetaLogic.linear_aspect_count
source theorem Tau.MetaLogic.linear_aspect_count :allLinearAspects.length = 3
There are exactly 3 linear aspects.
Tau.MetaLogic.isRhoPure
source def Tau.MetaLogic.isRhoPure :Denotation.Program → Bool
A program is in normal form (cut-free) when it has no redundant sigma instructions. The simplest characterization: a program is “rho-pure” when it contains only rho instructions. In general, cut-freedom corresponds to NF-confluence: the rho count is invariant under rewriting. Equations
- Tau.MetaLogic.isRhoPure [] = true
- Tau.MetaLogic.isRhoPure (Tau.Denotation.Instruction.rho_inst :: rest) = Tau.MetaLogic.isRhoPure rest
- Tau.MetaLogic.isRhoPure (Tau.Denotation.Instruction.sigma_inst a a_1 :: tail) = false Instances For
Tau.MetaLogic.empty_is_rho_pure
source theorem Tau.MetaLogic.empty_is_rho_pure :isRhoPure [] = true
The empty program is rho-pure (the identity proof).
Tau.MetaLogic.rho_pure_compose
source **theorem Tau.MetaLogic.rho_pure_compose (p q : Denotation.Program)
(hp : isRhoPure p = true)
(hq : isRhoPure q = true) :isRhoPure (p.compose q) = true**
Concatenation of rho-pure programs is rho-pure. This is the linear analogue: cut on two cut-free proofs gives a cut-free proof (in the rho-only fragment).
Tau.MetaLogic.cut_elimination_additive
source theorem Tau.MetaLogic.cut_elimination_additive (p q : Denotation.Program) :Denotation.countRho (p.compose q) = Denotation.countRho p + Denotation.countRho q
NF-confluence as a linear property: the rho count (resource consumption) is additive under composition (cut). This is the computational content of cut-elimination.
Tau.MetaLogic.identity_zero_resource
source theorem Tau.MetaLogic.identity_zero_resource :Denotation.countRho [] = 0
The identity program consumes zero resources.
Tau.MetaLogic.ResourceState
source inductive Tau.MetaLogic.ResourceState :Type
The four resource states corresponding to Truth4 values.
-
present: the resource is available (both sectors confirm)
-
absent: the resource is consumed (both sectors deny)
-
overdetermined: the resource is claimed by conflicting sources
-
underdetermined: the resource status is unknown
- present : ResourceState
- absent : ResourceState
- overdetermined : ResourceState
- underdetermined : ResourceState Instances For
Tau.MetaLogic.instDecidableEqResourceState
source instance Tau.MetaLogic.instDecidableEqResourceState :DecidableEq ResourceState
Equations
- Tau.MetaLogic.instDecidableEqResourceState x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Tau.MetaLogic.instReprResourceState
source instance Tau.MetaLogic.instReprResourceState :Repr ResourceState
Equations
- Tau.MetaLogic.instReprResourceState = { reprPrec := Tau.MetaLogic.instReprResourceState.repr }
Tau.MetaLogic.instReprResourceState.repr
source def Tau.MetaLogic.instReprResourceState.repr :ResourceState → ℕ → Std.Format
Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.MetaLogic.truth4_to_resource
source def Tau.MetaLogic.truth4_to_resource :Logic.Truth4 → ResourceState
Map Truth4 values to resource states. Equations
- Tau.MetaLogic.truth4_to_resource Tau.Logic.Truth4.T = Tau.MetaLogic.ResourceState.present
- Tau.MetaLogic.truth4_to_resource Tau.Logic.Truth4.F = Tau.MetaLogic.ResourceState.absent
- Tau.MetaLogic.truth4_to_resource Tau.Logic.Truth4.B = Tau.MetaLogic.ResourceState.overdetermined
- Tau.MetaLogic.truth4_to_resource Tau.Logic.Truth4.N = Tau.MetaLogic.ResourceState.underdetermined Instances For
Tau.MetaLogic.resource_to_truth4
source def Tau.MetaLogic.resource_to_truth4 :ResourceState → Logic.Truth4
Map resource states back to Truth4 values. Equations
- Tau.MetaLogic.resource_to_truth4 Tau.MetaLogic.ResourceState.present = Tau.Logic.Truth4.T
- Tau.MetaLogic.resource_to_truth4 Tau.MetaLogic.ResourceState.absent = Tau.Logic.Truth4.F
- Tau.MetaLogic.resource_to_truth4 Tau.MetaLogic.ResourceState.overdetermined = Tau.Logic.Truth4.B
- Tau.MetaLogic.resource_to_truth4 Tau.MetaLogic.ResourceState.underdetermined = Tau.Logic.Truth4.N Instances For
Tau.MetaLogic.truth4_resource_roundtrip
source theorem Tau.MetaLogic.truth4_resource_roundtrip (v : Logic.Truth4) :resource_to_truth4 (truth4_to_resource v) = v
Round-trip: truth4 -> resource -> truth4 is the identity.
Tau.MetaLogic.resource_truth4_roundtrip
source theorem Tau.MetaLogic.resource_truth4_roundtrip (r : ResourceState) :truth4_to_resource (resource_to_truth4 r) = r
Round-trip: resource -> truth4 -> resource is the identity.
Tau.MetaLogic.truth4_to_resource_injective
source **theorem Tau.MetaLogic.truth4_to_resource_injective (a b : Logic.Truth4)
(h : truth4_to_resource a = truth4_to_resource b) :a = b**
Injectivity of truth4_to_resource.
Tau.MetaLogic.resource_to_truth4_injective
source **theorem Tau.MetaLogic.resource_to_truth4_injective (a b : ResourceState)
(h : resource_to_truth4 a = resource_to_truth4 b) :a = b**
Injectivity of resource_to_truth4.
Tau.MetaLogic.overdetermined_is_contraction_artifact
source theorem Tau.MetaLogic.overdetermined_is_contraction_artifact :truth4_to_resource Logic.Truth4.B = ResourceState.overdetermined
B (overdetermined) is the contraction artifact: a resource claimed both present and absent — this arises when a resource is used twice (contracted) from conflicting sources.
Tau.MetaLogic.underdetermined_is_weakening_artifact
source theorem Tau.MetaLogic.underdetermined_is_weakening_artifact :truth4_to_resource Logic.Truth4.N = ResourceState.underdetermined
N (underdetermined) is the weakening artifact: a resource whose status is unknown — this arises when a resource is discarded (weakened away) before its status is determined.
Tau.MetaLogic.present_is_T
source theorem Tau.MetaLogic.present_is_T :truth4_to_resource Logic.Truth4.T = ResourceState.present
The present state maps to T.
Tau.MetaLogic.absent_is_F
source theorem Tau.MetaLogic.absent_is_F :truth4_to_resource Logic.Truth4.F = ResourceState.absent
The absent state maps to F.
Tau.MetaLogic.allResourceStates
source def Tau.MetaLogic.allResourceStates :List ResourceState
All resource states enumerated. Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.MetaLogic.resource_state_count
source theorem Tau.MetaLogic.resource_state_count :allResourceStates.length = 4
There are exactly 4 resource states.
Tau.MetaLogic.contraction_produces_overdetermined
source theorem Tau.MetaLogic.contraction_produces_overdetermined :k5_status StructuralRule.contraction = ObjectLevelStatus.refused ∧ truth4_to_resource Logic.Truth4.B = ResourceState.overdetermined
Contraction produces overdetermined states. The refused rule (.contraction) corresponds to the pathological resource state (.overdetermined = B).
Tau.MetaLogic.weakening_produces_underdetermined
source theorem Tau.MetaLogic.weakening_produces_underdetermined :k5_status StructuralRule.weakening = ObjectLevelStatus.refused ∧ truth4_to_resource Logic.Truth4.N = ResourceState.underdetermined
Weakening produces underdetermined states. The refused rule (.weakening) corresponds to the pathological resource state (.underdetermined = N).
Tau.MetaLogic.DiagonalLinearCorrespondence
source structure Tau.MetaLogic.DiagonalLinearCorrespondence :Prop
[I.T37] The Diagonal-Linear Correspondence Theorem.
The correspondence has three components:
-
Aspect bijection: 3 diagonal aspects ↔ 3 linear aspects
-
Resource interpretation: 4 Truth4 values ↔ 4 resource states
-
Structural classification: 2 refused + 1 preserved = 3 rules
Together, these establish that K5’s diagonal discipline IS the !-free fragment of linear logic, restricted to τ’s finite universe.
-
aspect_count : allDiagonalAspects.length = 3 The aspect bijection has 3 components
-
resource_count : allResourceStates.length = 4 The resource interpretation has 4 states matching Truth4
-
- aspect_roundtrip_diag
- (d : DiagonalAspect)
- linear_to_diag (diag_to_linear d) = d The aspect bijection is a genuine bijection (round-trip)
-
- aspect_roundtrip_linear
- (l : LinearAspect)
- diag_to_linear (linear_to_diag l) = l The aspect bijection is a genuine bijection (round-trip)
-
- resource_roundtrip_t4
- (v : Logic.Truth4)
- resource_to_truth4 (truth4_to_resource v) = v The resource interpretation is a genuine bijection (round-trip)
-
- resource_roundtrip_rs
- (r : ResourceState)
- truth4_to_resource (resource_to_truth4 r) = r The resource interpretation is a genuine bijection (round-trip)
-
rules_refused : refusedRules.length = 2 Structural rules: exactly 2 refused
- rules_preserved : preservedRules.length = 1 Structural rules: exactly 1 preserved
Instances For
Tau.MetaLogic.diagonal_linear_correspondence
source theorem Tau.MetaLogic.diagonal_linear_correspondence :DiagonalLinearCorrespondence
The correspondence theorem: all components are satisfied.