Verisyntax — brugermanual (prototype 0.1)
Boolsk Bayes-inferens
Små boolske modeller kan nu skrives direkte:
rain ~ chance(0.30)
sprinkler ~ chance(0.20)
wet_grass:
if rain and sprinkler: chance(0.99)
if rain: chance(0.90)
if sprinkler: chance(0.80)
otherwise: chance(0.02)
observe wet_grass = true
ask rain
Cases afprøves i kildens rækkefølge; den første matchende case bruges. Derfor skal den mest specifikke case stå først. Hver conditional variable skal have præcis én afsluttende otherwise. Conditions kan bruge not sprinkler for værdien false. Typekontrollen afviser ukendte dependencies, self-dependency, cycles, dublerede observationer og sandsynligheder uden for [0,1].
Kør modellen med:
<compiler>/verisyntax infer <example-project>
Runtime enumererer alle tilstande eksakt for højst 20 boolske variable. Resultatet viser method: exact_enumeration, exact-status, antal variable og tilstande, evidenssandsynlighed og posterior P(true | evidence)/P(false | evidence). Boolsk posterior er en diskret state distribution og kaldes derfor ikke et kontinuerligt HDI.
Observationer med samlet sandsynlighed nul er logisk umulige under modellen. Eksempelvis kan observe disease = false ikke kombineres med observe test_result = true, hvis modellen siger, at P(test_result=true | disease=false)=0. Her er posterioren ikke 0 % eller 100 %, men matematisk udefineret, fordi betingningen kræver division med P(observationer)=0. Appen viser derfor Posterior is undefined / Logically impossible observations og foreslår, at du ændrer en observation eller bruger fagligt begrundede, ikke-nul fejlrater, hvis testen ikke virkelig er perfekt.
Resultatvisningen bruger adaptiv præcision nær 0 % og 100 %. En lille, men positiv posterior som 0.00000198 vises derfor som 0.00000198 (0.000198%) og må ikke ligne det eksakte resultat 0. Disse små boolske modeller bruger eksakt enumeration; MCMC, ESS og R-hat er ikke involveret.
Projektets samlede, håndkontrollerbare acceptance-suite ligger i <example-project>. Den indeholder 18 separate inputfiler med håndregning og forventet adfærd: almindelige priors, positiv/negativ Bayes-test, skjult mellemvariabel, umulig evidens, dogmatisk prior, modstridende sensorer, sjælden tilstand, deterministisk lighed, beta-binomial, fire normalmodeller og endelig-sample HDI. Den automatiske C++-test læser præcis disse filer og kan køres alene med:
ctest --test-dir build -R verisyntax_probability_acceptance_suite --output-on-failure
