Verisyntax — brugermanual (prototype 0.1)

Regelforslag og aktivering

Regler bruger den samme lokale reviewer-identitet, men forslaget er en særskilt JSON-kontrakt. Sprogets termer er engelske:

{
  "schema": "verisyntax.rule-proposal",
  "version": 1,
  "stable_name": "reachable",
  "rule_source": "reachable(X)\n  if edge(X, Y)\n"
}

Forslaget må indeholde præcis én deterministisk regel og ingen database-, source-, dataset-, fact-, ask- eller sandsynlighedsdeklarationer. stable_name skal være samme navn som reglens head-predicate. C++ parser og type-/semantikkontrol skal acceptere både reglen isoleret og dens predicate-ariteter sammen med det aktuelle program; alle head- og negationsvariable skal være positivt bundet. Første konservative stratificeringskontrol afviser en negativ selvafhængighed. Den gemte canonical IR mærkes range_restricted og passed. Det er endnu ikke en generel stratificeringsanalyse af en hel graf af flere foreslåede regler.

<compiler>/verisyntax rules propose model.vsx local rule-proposal.json
<compiler>/verisyntax rules list model.vsx local --status proposed
<compiler>/verisyntax rules decide model.vsx local RULE_VERSION_ID approve \
  --expected-hash RULE_CONTENT_HASH \
  --reason "Rule source and safety checks reviewed"

Et forslag er altid proposed og inaktivt. En eksisterende aktiv stabil regel må ikke skifte aritet; brug i så fald et nyt stable_name. approve aktiverer kun den eksakte hash-bundne version og markerer en tidligere aktiv version med samme stabile navn som superseded. reject gemmer beslutningen, men lader en tidligere aktiv version være aktiv. I IDE'en bruges Propose Rule From JSON, det scriptfri Review Rules og derefter Approve or Reject Rule. Dokumenthash, reviewer-profilhash og canonical rule-IR-hash kontrolleres igen ved mutationen.