pure-validity / src /claims.py
SNAPKITTYWEST's picture
push from SNAPKITTYWEST/pure-validity
56de343 verified
Raw
History Blame Contribute Delete
2.69 kB
#!/usr/bin/env python3
"""claims.py — All 16 registered validity claims"""
from engine import Claim
# Topology claims (5)
TOPOLOGY_CLAIMS = [
Claim(
type="topology",
spec="topology_preservation",
evidence=["kernel", "topology", "state"]
),
Claim(
type="topology",
spec="reachability",
evidence=["graph", "start", "goal"]
),
Claim(
type="topology",
spec="floating_ports",
evidence=["circuit", "connections"]
),
Claim(
type="topology",
spec="conduction_soundness",
evidence=["voltage_levels", "transitions"]
),
Claim(
type="topology",
spec="cycle_detection",
evidence=["graph_edges", "visited"]
),
]
# Numeric claims (4)
NUMERIC_CLAIMS = [
Claim(
type="numeric",
spec="feasibility_bounds",
evidence=["cpu", "memory", "latency"]
),
Claim(
type="numeric",
spec="resource_conservation",
evidence=["allocated", "used", "freed"]
),
Claim(
type="numeric",
spec="timing_constraints",
evidence=["start_time", "end_time", "deadline"]
),
Claim(
type="numeric",
spec="bitwidth_overflow",
evidence=["operands", "bitwidth", "result"]
),
]
# Stack machine claims (7)
STACK_MACHINE_CLAIMS = [
Claim(
type="stack_machine",
spec="stack_depth_bound",
evidence=["instructions", "max_depth"]
),
Claim(
type="stack_machine",
spec="frame_integrity",
evidence=["frames", "pointers"]
),
Claim(
type="stack_machine",
spec="return_address_validity",
evidence=["return_stack", "code_pointers"]
),
Claim(
type="stack_machine",
spec="variable_initialization",
evidence=["variables", "init_sites"]
),
Claim(
type="stack_machine",
spec="no_use_after_free",
evidence=["allocation", "deallocation", "access"]
),
Claim(
type="stack_machine",
spec="no_buffer_overflow",
evidence=["buffers", "accesses", "bounds"]
),
Claim(
type="stack_machine",
spec="type_safety",
evidence=["instructions", "operands", "types"]
),
]
ALL_CLAIMS = TOPOLOGY_CLAIMS + NUMERIC_CLAIMS + STACK_MACHINE_CLAIMS
def get_claims_by_type(claim_type: str):
"""Get all claims of a specific type"""
return [c for c in ALL_CLAIMS if c.type == claim_type]
def get_all_claims():
"""Get all 16 claims"""
return ALL_CLAIMS