Eish zarah actionable items: coupling trace, grounding type, self-grounding detection, golden calf halt

Torah grounds each change:

1. interpret.pl — coupling_trace field (Vayikra 10:1, 6:6)
   Fire is zarah because "asher lo tzivah otam" — the coupling trace
   IS the tzivah trace. Records which L1 facts grounded each interpretation.

2. challenge.pl — grounding_type achorai/panim (Shemot 33:23)
   "You will see My back, but My face shall not be seen."
   Text-backed challenges = achorai. Inferred challenges = panim.

3. resolve.pl — self-grounding detection (eish_zarah_reading §5.3)
   Counter-interpretation must bring NEW L1 evidence. Prevents
   circular reasoning (Westworld problem).

4. teiku.pl — challenge_sequence in teiku_record
   Records diagnostic trail to impasse, not just verdict.

5. avodah_zarah.pl — Form 2: golden calf detection (Shemot 32:4)
   Empty coupling trace + non-low confidence = uncoupled output.
   Real gold, sincere worship, false god.

6. korban.py — pydantic BaseModel + raw_korban preservation
   Construction spec §1.4 fulfilled. Floor between input and output
   never severed.

490 tests, 0 failures (195 Prolog, 186 Python, 33 Haskell, 76 Elixir).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott KarpandClaude Opus 4.6 committed 2026-03-16 13:25:26 -04:00
1 parent c5fe82477b
commit adc3e41679
12 files changed
+371 -65

No files matched your search

+33 -6
View File
@@ -12,12 +12,22 @@
%%
%% The challenge is a question, not a refutation.
%% It says: "But what about THIS verse/mitzvah?"
%%
%% Each kushya carries a grounding_type — Shemot 33:23:
%% v'raita et ACHORAI u'fanai lo yera'u.
%% "You will see My back, but My face shall not be seen."
%%
%% achorai = effects directly observable in L1 text
%% (mitzvah_tension, shnei_ketuvim_tension, condition_tension)
%% panim = intention inferred/attributed by the system
%% (domain_tension, kal_vachomer_tension)
:- module(challenge, [
challenge/2,
find_contradiction/3,
contradicts/2,
challenge_strength/2
challenge_strength/2,
grounding_type/2
]).
:- use_module('../specification/mitzvot').
@@ -33,14 +43,16 @@
%% Generate a challenge to an interpretation.
%% A challenge consists of:
%% kushya(Contradicting, Interpretation, Strength)
%% kushya(Contradicting, CaseRef, Strength, GroundingType)
%% - Contradicting: the mitzvah or verse that creates tension
%% - Interpretation: the interpretation being challenged
%% - CaseRef: the interpretation being challenged
%% - Strength: strong | moderate | weak
challenge(interpretation(CaseRef, Mitzvot, Verses, _Reading, _Confidence), Challenge) :-
%% - GroundingType: achorai | panim (Shemot 33:23)
challenge(interpretation(CaseRef, Mitzvot, Verses, _Reading, _Confidence, _CouplingTrace), Challenge) :-
find_contradiction(Mitzvot, Verses, Contradicting),
challenge_strength(Contradicting, Strength),
Challenge = kushya(Contradicting, CaseRef, Strength).
grounding_type(Contradicting, GType),
Challenge = kushya(Contradicting, CaseRef, Strength, GType).
%% ============================================================
%% FIND CONTRADICTIONS
@@ -91,7 +103,7 @@ find_contradiction(_Mitzvot, Verses, contradiction(shnei_ketuvim_tension, Ref1,
%% contradicts/2 — does a source contradict an interpretation?
%% This is the core logic: given an interpretation's grounding,
%% does some other part of Torah create a tension?
contradicts(interpretation(_, Mitzvot, _, _, _), Source) :-
contradicts(interpretation(_, Mitzvot, _, _, _, _), Source) :-
find_contradiction(Mitzvot, [], Source).
%% Domains that are inherently in tension
@@ -121,6 +133,21 @@ challenge_strength(contradiction(condition_tension, _, _, _), weak).
challenge_strength(contradiction(kal_vachomer_tension, _, _, _), strong).
challenge_strength(contradiction(shnei_ketuvim_tension, _, _, _), strong).
%% ============================================================
%% GROUNDING TYPE — Shemot 33:23
%% ============================================================
%% Achorai: directly observable in L1 text.
%% The tension is stated, not inferred.
grounding_type(contradiction(mitzvah_tension, _, _, _), achorai).
grounding_type(contradiction(condition_tension, _, _, _), achorai).
grounding_type(contradiction(shnei_ketuvim_tension, _, _, _), achorai).
%% Panim: inferred by the system.
%% The tension is attributed, not directly stated in text.
grounding_type(contradiction(domain_tension, _, _, _), panim).
grounding_type(contradiction(kal_vachomer_tension, _, _, _), panim).
%% ============================================================
%% HELPERS
%% ============================================================