mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-30 18:56:16 +00:00
- cupfox-config.nix: add Open WebUI container with chat.researchstack.info proxy, gather-metrics service/timer, rclone, and tmpfiles for persistent storage - Lean semantics: reduce axiom count from 109 to 18 across 10 files; FixedPoint now 0 axioms, 0 sorries with 12 theorems - Documentation: update AGENTS.md with current axiom/sorry counts and FixedPoint status; refine bind signature - Add topology scripts, CGA/FAMM/GeneticOptimizer/MMRFAMM Lean modules, devcontainer config, MEMORY.md, and Modelfile
209 lines
6.7 KiB
Python
209 lines
6.7 KiB
Python
#!/usr/bin/env python3
|
|
# SHIM ONLY — NO INVARIANT CHECKS, NO COST COMPUTATION, NO BRANCHING DECISIONS
|
|
"""
|
|
PIST-GCL Framework Compression — Shim Boundary
|
|
===============================================
|
|
|
|
This is a data-passing shim only. All invariant checks, cost computations,
|
|
conservation-law verification, and branching decisions have been moved behind
|
|
the Lean receipt boundary. This file performs only:
|
|
- File discovery and scanning
|
|
- JSON receipt serialization
|
|
- Data-passing (read → pass-through → write)
|
|
|
|
# TODO: Replace with Lean receipt when Q16_16 build is stable
|
|
"""
|
|
|
|
import hashlib
|
|
import json
|
|
import math
|
|
import time
|
|
from dataclasses import dataclass
|
|
from pathlib import Path
|
|
from typing import Dict, List, Optional, Tuple
|
|
|
|
RESEARCH_STACK = Path("/home/allaun/Documents/Research Stack")
|
|
|
|
|
|
def pist_encode(n: int) -> Tuple[int, int]:
|
|
k = int(math.isqrt(n))
|
|
t = n - k * k
|
|
return (k, t)
|
|
|
|
|
|
def pist_decode(k: int, t: int) -> int:
|
|
return k * k + t
|
|
|
|
|
|
# TODO: Replace with Lean receipt when Q16_16 build is stable
|
|
# Lean should answer: mass, phase, thermodynamic validity, lawfulness
|
|
|
|
|
|
@dataclass
|
|
class MetaprobeManifest:
|
|
source_path: str
|
|
component_type: str
|
|
original_hash: str
|
|
compressed_hash: str
|
|
compression_layers: List[str]
|
|
q16_16_verified: bool
|
|
thermodynamic_valid: bool
|
|
landauer_respected: bool
|
|
timestamp: str
|
|
prover_receipt: Optional[str]
|
|
|
|
|
|
@dataclass
|
|
class CompressionTask:
|
|
source_path: Path
|
|
target_path: Path
|
|
component_type: str
|
|
priority: int
|
|
|
|
|
|
class FrameworkCompressionOrchestrator:
|
|
|
|
def __init__(self, max_memory_gb: float = 4.0):
|
|
self.max_memory_gb = max_memory_gb
|
|
self.tasks: List[CompressionTask] = []
|
|
self.results: Dict[str, Dict] = {}
|
|
|
|
def scan_framework(self, max_files: int = 100):
|
|
print("Scanning framework for compression targets...")
|
|
|
|
lean_dir = RESEARCH_STACK / "0-Core-Formalism/lean/Semantics"
|
|
count = 0
|
|
for lean_file in lean_dir.rglob("*.lean"):
|
|
if count >= max_files:
|
|
break
|
|
if lean_file.stat().st_size > 1024:
|
|
self.tasks.append(CompressionTask(
|
|
source_path=lean_file,
|
|
target_path=Path(str(lean_file) + ".pist"),
|
|
component_type='lean',
|
|
priority=0 if 'F' in lean_file.name else 1
|
|
))
|
|
count += 1
|
|
|
|
docs_dir = RESEARCH_STACK / "6-Documentation/docs/speculative-materials"
|
|
for md_file in docs_dir.rglob("*.md"):
|
|
if count >= max_files:
|
|
break
|
|
if md_file.stat().st_size > 2048:
|
|
self.tasks.append(CompressionTask(
|
|
source_path=md_file,
|
|
target_path=Path(str(md_file) + ".pist"),
|
|
component_type='markdown',
|
|
priority=2
|
|
))
|
|
count += 1
|
|
|
|
shim_dir = RESEARCH_STACK / "4-Infrastructure/shim"
|
|
for py_file in shim_dir.rglob("*.py"):
|
|
if count >= max_files:
|
|
break
|
|
if py_file.stat().st_size > 1024:
|
|
self.tasks.append(CompressionTask(
|
|
source_path=py_file,
|
|
target_path=Path(str(py_file) + ".pist"),
|
|
component_type='python',
|
|
priority=3
|
|
))
|
|
count += 1
|
|
|
|
self.tasks.sort(key=lambda t: t.priority)
|
|
print(f"Found {len(self.tasks)} compression targets (limited to {max_files} for demo)")
|
|
|
|
def compress_component(self, task: CompressionTask) -> Dict:
|
|
"""
|
|
Data-passing shim: reads file, writes a placeholder receipt.
|
|
All compression, invariant checks, and lawfulness decisions
|
|
are deferred to Lean (Q16_16 build).
|
|
"""
|
|
data = task.source_path.read_bytes()
|
|
original_hash = hashlib.sha256(data).hexdigest()
|
|
|
|
task.target_path.parent.mkdir(parents=True, exist_ok=True)
|
|
task.target_path.write_bytes(data)
|
|
|
|
# TODO: Replace with Lean receipt when Q16_16 build is stable
|
|
# Lean should compute:
|
|
# - PIST coordinates and mass
|
|
# - thermodynamic verification (landauer_bound, second_law)
|
|
# - metaprobe metadata compression
|
|
# - lawfulness determination
|
|
|
|
from datetime import datetime as dt
|
|
|
|
manifest = MetaprobeManifest(
|
|
source_path=str(task.source_path),
|
|
component_type=task.component_type,
|
|
original_hash=original_hash,
|
|
compressed_hash=original_hash,
|
|
compression_layers=[],
|
|
q16_16_verified=False,
|
|
thermodynamic_valid=False,
|
|
landauer_respected=False,
|
|
timestamp=dt.now().isoformat(),
|
|
prover_receipt=None,
|
|
)
|
|
|
|
meta_path = Path(str(task.target_path) + ".meta")
|
|
meta_payload = {
|
|
"source": str(task.source_path),
|
|
"type": task.component_type,
|
|
"original_hash": original_hash,
|
|
"_note": "Shim boundary — invariant checks deferred to Lean (TODO: Q16_16 build)",
|
|
}
|
|
meta_path.write_text(json.dumps(meta_payload, indent=2))
|
|
|
|
report = {
|
|
"source_path": str(task.source_path),
|
|
"target_path": str(task.target_path),
|
|
"original_bytes": len(data),
|
|
"_status": "SHIM_PASSTHROUGH",
|
|
"_note": "TODO: Replace with Lean receipt when Q16_16 build is stable",
|
|
}
|
|
|
|
self.results[str(task.source_path)] = report
|
|
return report
|
|
|
|
def run_compression(self):
|
|
print("\n" + "=" * 70)
|
|
print("PIST-GCL Framework Compression — Shim Passthrough")
|
|
print("=" * 70)
|
|
|
|
for i, task in enumerate(self.tasks):
|
|
print(f"\n[{i+1}/{len(self.tasks)}] {task.component_type}: {task.source_path.name}")
|
|
|
|
report = self.compress_component(task)
|
|
|
|
print(f" Original: {report['original_bytes']:,} bytes")
|
|
print(f" Status: {report['_status']}")
|
|
|
|
time.sleep(0.1)
|
|
|
|
print("\n" + "=" * 70)
|
|
print("SHIM PASSTHROUGH SUMMARY")
|
|
print("=" * 70)
|
|
print(f"Total components: {len(self.results)}")
|
|
print("All invariant checks deferred to Lean (TODO: Q16_16 build)")
|
|
print("=" * 70)
|
|
|
|
|
|
def main():
|
|
orchestrator = FrameworkCompressionOrchestrator(max_memory_gb=4.0)
|
|
|
|
orchestrator.scan_framework(max_files=100)
|
|
|
|
orchestrator.run_compression()
|
|
|
|
print("\n" + "=" * 70)
|
|
print("Framework shim passthrough complete.")
|
|
print("No invariant checks, no cost computation, no branching decisions.")
|
|
print("TODO: Replace with Lean receipt when Q16_16 build is stable")
|
|
print("=" * 70)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|