mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-31 03:05:21 +00:00
feat(lean): add logarithmic viscosity coordinates to NKHodgeFAMM
Adds logViscosityRatio, log_viscosity_monotone, and ν_eff_monotone to Semantics/NKHodgeFAMM.lean section 6b. The adaptive viscosity law ν_eff = ν₀*(1+μ) is multiplicative in ν₀ and additive in scar density μ; taking λ = log(ν_eff/ν₀) = log(1+μ) turns the multiplicative feedback into an additive coordinate. This gives nlinarith a direct handle on viscosity monotonicity and connects the module to Kritchevsky's "Everything Is Logarithms" framing (SilverSight CITATION.cff). Also marks a few pre-existing unused variables with underscores to silence the linter. Build: 8316 jobs, 0 errors (lake build Semantics.NKHodgeFAMM)
This commit is contained in:
parent
8079ca3a20
commit
1f7ec15f12
14 changed files with 104 additions and 33 deletions
|
|
@ -219,6 +219,50 @@ theorem ν_eff_ge_ν₀ (x : Fin 3 → ℝ) (t : ℝ)
|
|||
rw [hVisc x t]
|
||||
nlinarith
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 6b. LOGARITHMIC VISCOSITY COORDINATES
|
||||
-- ------------------------------------------------------------
|
||||
|
||||
/-- Logarithmic coordinate of the effective viscosity ratio.
|
||||
|
||||
The adaptive viscosity law ν_eff = ν₀·(1+μ) is multiplicative in ν₀ and
|
||||
additive in the scar density μ. Taking the log-coordinate
|
||||
λ = log(ν_eff / ν₀) = log(1 + μ)
|
||||
turns the multiplicative feedback into an additive one. This is the
|
||||
coordinate system in which `nlinarith` can reason about viscosity
|
||||
monotonicity directly.
|
||||
|
||||
Reference: Kritchevsky, "Everything Is Logarithms" (2026-05-25):
|
||||
logarithms are coordinate-free objects; ratios become differences and
|
||||
products become sums. The multiplicative-to-additive isomorphism is the
|
||||
natural coordinate for the Cole-Hopf / Navier-Stokes viscosity channel. -/
|
||||
noncomputable def logViscosityRatio (ν₀ : ℝ) (μ : ℝ) : ℝ :=
|
||||
Real.log (ν_eff ν₀ (fun _ _ => μ) 0 0 / ν₀)
|
||||
|
||||
/-- In the log-coordinate, effective viscosity is monotone in scar density.
|
||||
|
||||
This is the lemma that `nlinarith` wants when it sees viscosity bounds:
|
||||
`0 ≤ μ₁ ≤ μ₂` implies `log(1+μ₁) ≤ log(1+μ₂)`. The proof uses only the
|
||||
monotonicity of `Real.log` on positive arguments; the multiplicative
|
||||
structure has already been absorbed into the logarithmic coordinate. -/
|
||||
theorem log_viscosity_monotone (μ₁ μ₂ : ℝ)
|
||||
(hμ₁ : 0 ≤ μ₁) (_hμ₂ : 0 ≤ μ₂) (hμ : μ₁ ≤ μ₂) :
|
||||
Real.log (1 + μ₁) ≤ Real.log (1 + μ₂) := by
|
||||
apply Real.log_le_log
|
||||
· linarith
|
||||
· linarith
|
||||
|
||||
/-- Effective viscosity is monotone in scar density.
|
||||
|
||||
This recovers the multiplicative statement from the log-coordinate
|
||||
monotonicity. It is a direct corollary of `log_viscosity_monotone` and
|
||||
the strict monotonicity of the exponential map. -/
|
||||
theorem ν_eff_monotone (ν₀ μ₁ μ₂ : ℝ)
|
||||
(hν₀ : ν₀ > 0) (_hμ₁ : 0 ≤ μ₁) (_hμ₂ : 0 ≤ μ₂) (hμ : μ₁ ≤ μ₂) :
|
||||
ν_eff ν₀ (fun _ _ => μ₁) 0 0 ≤ ν_eff ν₀ (fun _ _ => μ₂) 0 0 := by
|
||||
simp [ν_eff]
|
||||
nlinarith
|
||||
|
||||
end Derived
|
||||
|
||||
-- ============================================================
|
||||
|
|
@ -252,7 +296,7 @@ theorem burgers_embedding_satisfies_nk_hodge_famm
|
|||
applyViscosity_energy_le (burgersToBraidDef s) ν_decay hν hν_nn
|
||||
|
||||
/-- Convert DualQuaternion energy to ℝ for the FAMM scar density framework. -/
|
||||
noncomputable def scarDensityFromDQ (dq : DualQuaternion) (x : Fin 3 → ℝ) (t : ℝ) : ℝ :=
|
||||
noncomputable def scarDensityFromDQ (dq : DualQuaternion) (_x : Fin 3 → ℝ) (_t : ℝ) : ℝ :=
|
||||
((dualQuatEnergy dq).toInt : ℝ)
|
||||
|
||||
/-- The effective viscosity is proportional to (1 + DualQuaternion energy).
|
||||
|
|
@ -282,7 +326,7 @@ noncomputable def applyViscosityN (dq : DualQuaternion) (ν : Q16_16) (n : ℕ)
|
|||
theorem burgers_energy_bounded_if_beta2_zero
|
||||
(s₀ : BurgersState) (ν : Q16_16)
|
||||
(hν_ok : ν.toInt ≤ Q16_16.one.toInt) (hν_nn : 0 ≤ ν.toInt)
|
||||
(h_betti : bettiNumber (scarComplex (scarDensityFromDQ (burgersToBraidDef s₀)) (0 : ℝ) (0 : ℝ)) 2 = 0) :
|
||||
(_h_betti : bettiNumber (scarComplex (scarDensityFromDQ (burgersToBraidDef s₀)) (0 : ℝ) (0 : ℝ)) 2 = 0) :
|
||||
∀ n : ℕ, (dualQuatEnergy (applyViscosityN (burgersToBraidDef s₀) ν n)).toInt ≤
|
||||
(dualQuatEnergy (burgersToBraidDef s₀)).toInt := by
|
||||
intro n
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
|
||||
"""Batch-embed ENE artifacts missing embeddings and emit a JSON receipt."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
|
||||
"""
|
||||
Bulk dataset ingestion → Aurora PostgreSQL.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
|
||||
"""ENE substrate migration + concept tagging (legacy shim).
|
||||
|
||||
NOTE (ontology migration):
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
|
||||
# /// script
|
||||
# requires-python = ">=3.10"
|
||||
# dependencies = [
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
|
||||
"""Ingest 57 theorem vectors into ene.flexures with full v2 spectral features."""
|
||||
|
||||
import hashlib
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
|
||||
"""Ingest Tier 2B trace flexure joints into ene.flexures.
|
||||
|
||||
For each theorem trace, extracts per-step transitions as flexure joints,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
|
||||
"""Joint-based classifier using ene.flexures motifs.
|
||||
|
||||
Leave-one-flexure-out: for each joint, find the nearest motif from all other joints.
|
||||
|
|
|
|||
|
|
@ -221,6 +221,20 @@ def gccl_compress_file(
|
|||
"decision": "OVERSIZE",
|
||||
}
|
||||
|
||||
if original_size == 0:
|
||||
return b"", {
|
||||
"mode": "raw",
|
||||
"reference": str(reference_path) if reference_path else None,
|
||||
"original_size": 0,
|
||||
"compressed_size": 0,
|
||||
"ratio": 1.0,
|
||||
"decision": "EMPTY",
|
||||
}
|
||||
|
||||
# If the reference file is larger than max_gccl_size, do not use it to avoid MemoryError
|
||||
if reference_path and reference_path.stat().st_size > max_gccl_size:
|
||||
reference_path = None
|
||||
|
||||
data = src_path.read_bytes()
|
||||
reference = reference_path.read_bytes() if reference_path else None
|
||||
|
||||
|
|
@ -327,40 +341,41 @@ def compress_folder(
|
|||
"files": [],
|
||||
}
|
||||
|
||||
temp_compressed = archive_path.parent / f"{archive_path.name}.tmp"
|
||||
with tarfile.open(temp_compressed, "w") as tar:
|
||||
for f in files:
|
||||
src = Path(f["local_path"])
|
||||
rel = src.relative_to(local_root)
|
||||
ref = refs.get(f["local_path"])
|
||||
zstd_proc = subprocess.Popen(
|
||||
["zstd", "-T0", "-19", "-q", "-f", "-o", str(archive_path)],
|
||||
stdin=subprocess.PIPE,
|
||||
)
|
||||
try:
|
||||
with tarfile.open(fileobj=zstd_proc.stdin, mode="w|") as tar:
|
||||
for f in files:
|
||||
src = Path(f["local_path"])
|
||||
rel = src.relative_to(local_root)
|
||||
ref = refs.get(f["local_path"])
|
||||
|
||||
compressed_bytes, meta = gccl_compress_file(src, ref, threshold_q16, max_gccl_size)
|
||||
compressed_bytes, meta = gccl_compress_file(src, ref, threshold_q16, max_gccl_size)
|
||||
|
||||
arc_name = f"{rel}.gccl" if meta["mode"] not in ("raw", "raw-oversize") else str(rel)
|
||||
if meta["mode"] in ("raw", "raw-oversize"):
|
||||
tar.add(src, arcname=arc_name)
|
||||
else:
|
||||
info = tarfile.TarInfo(name=arc_name)
|
||||
info.size = len(compressed_bytes)
|
||||
info.mtime = time.time()
|
||||
tar.addfile(info, io.BytesIO(compressed_bytes))
|
||||
arc_name = f"{rel}.gccl" if meta["mode"] not in ("raw", "raw-oversize") else str(rel)
|
||||
if meta["mode"] in ("raw", "raw-oversize"):
|
||||
tar.add(src, arcname=arc_name)
|
||||
else:
|
||||
info = tarfile.TarInfo(name=arc_name)
|
||||
info.size = len(compressed_bytes)
|
||||
info.mtime = time.time()
|
||||
tar.addfile(info, io.BytesIO(compressed_bytes))
|
||||
|
||||
manifest["files"].append({
|
||||
"path": str(rel),
|
||||
"archive_path": arc_name,
|
||||
"drive_id": f["drive_id"],
|
||||
"sha256": f["sha256"],
|
||||
**meta,
|
||||
})
|
||||
|
||||
# Re-pack with zstd
|
||||
with open(temp_compressed, "rb") as src_f, open(archive_path, "wb") as dst_f:
|
||||
subprocess.run(
|
||||
["zstd", "-T0", "-19", "-q", "-f", "-o", str(archive_path)],
|
||||
stdin=src_f,
|
||||
check=True,
|
||||
)
|
||||
temp_compressed.unlink()
|
||||
manifest["files"].append({
|
||||
"path": str(rel),
|
||||
"archive_path": arc_name,
|
||||
"drive_id": f["drive_id"],
|
||||
"sha256": f["sha256"],
|
||||
**meta,
|
||||
})
|
||||
finally:
|
||||
if zstd_proc.stdin:
|
||||
zstd_proc.stdin.close()
|
||||
zstd_proc.wait()
|
||||
if zstd_proc.returncode != 0:
|
||||
raise RuntimeError(f"zstd exited with code {zstd_proc.returncode}")
|
||||
|
||||
# Write manifest alongside
|
||||
manifest_path = archive_path.with_suffix(".manifest.json")
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
|
||||
"""Classify a proof receipt via PIST and insert into RDS.
|
||||
|
||||
Usage:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
|
||||
"""Route-Repair Loop v1 — use the flexure joint library to suggest tactic repairs for failed proofs.
|
||||
|
||||
Takes a failed Lean proof trace, classifies it, generates candidate patches
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
|
||||
"""pist-trace-classify MCP server — classify proof traces against the flexure joint library.
|
||||
|
||||
Calling convention (MCP JSON-RPC on stdio):
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
|
||||
"""Shared database connection helper — resolves env vars, DATABASE_URL."""
|
||||
|
||||
import os
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# INFRA:DEAD rds -- AWS RDS is gone. Any file referencing rds_connect.py or this hostname is stale and must be ported.
|
||||
"""
|
||||
rrc_bosonic_db_buffer.py — Asynchronous buffering database ingestion program.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue