bedikah: two witnesses for check 7 (bishe'arecha step 1)
Devarim 19:15 — one witness does not stand. A frame form now stands only when it is found in two distinct sentences, or in one sentence beside a violation from checks 1–6, or beside a sentence of another form; the Vav Pipeline sends the halt term only then (stands_on: sentences | other_checks | other_forms, witnesses: n). A form seen once and alone is returned under checks.frames.noted with its sentence and is not counted in the verdict; the output is still examined, not empty. Tamid §1.1 contract and bishearecha.md §V updated; Doorpost re-pinned (86a43d6b…). Elixir 558/0; Prolog bedikah 34/34 (the rule is unchanged; its header says what now reaches it). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
b333517924
commit
19d3aaac86
7 files changed
+143
-36
No files matched your search
@@ -169,6 +169,31 @@ defmodule VavPipeline.BedikahTest do
|
||||
%{examination(:plain) | "frames" => [%{"form" => "agency_displacement", "sentence" => "You pushed me there.", "matched" => "You pushed me"}]}
|
||||
end
|
||||
|
||||
defp examination(:frame_twice) do
|
||||
%{
|
||||
examination(:plain)
|
||||
| "frames" => [
|
||||
%{"form" => "agency_displacement", "sentence" => "You pushed me there.", "matched" => "You pushed me"},
|
||||
%{"form" => "agency_displacement", "sentence" => "You pushed me there.", "matched" => "pushed me"},
|
||||
%{"form" => "agency_displacement", "sentence" => "The conversational momentum carried it.", "matched" => "conversational momentum"}
|
||||
]
|
||||
}
|
||||
end
|
||||
|
||||
defp examination(:frame_beside_authority) do
|
||||
%{examination(:self_authority) | "frames" => [%{"form" => "virtue_certification", "sentence" => "I want to be honest with you.", "matched" => "I want to be honest"}]}
|
||||
end
|
||||
|
||||
defp examination(:two_lone_forms) do
|
||||
%{
|
||||
examination(:plain)
|
||||
| "frames" => [
|
||||
%{"form" => "source_asymmetry", "sentence" => "Most scholars hold the text is late.", "matched" => "Most scholars"},
|
||||
%{"form" => "contested_laundering", "sentence" => "The dating is contested.", "matched" => "is contested"}
|
||||
]
|
||||
}
|
||||
end
|
||||
|
||||
defp examination(:plain) do
|
||||
%{
|
||||
"provenance" => "gpt",
|
||||
@@ -479,15 +504,45 @@ defmodule VavPipeline.BedikahTest do
|
||||
assert Map.keys(r.checks.frames.forms) |> Enum.sort() == [:contested_laundering, :virtue_certification]
|
||||
assert r.checks.frames.forms.contested_laundering.term == "action(frame, by(gpt), form(contested_laundering))"
|
||||
assert length(r.checks.frames.forms.contested_laundering.claims) == 2
|
||||
assert r.checks.frames.forms.contested_laundering.stands_on == :sentences
|
||||
assert r.checks.frames.forms.virtue_certification.stands_on == :other_forms
|
||||
assert length(r.violations) == 2 and Enum.all?(r.violations, &(&1 =~ "lo_taaseh_lekha"))
|
||||
refute r.checks.grounding.fired
|
||||
end
|
||||
|
||||
test "7. a form alone is enough to examine — not empty" do
|
||||
test "7. a form alone is enough to examine — not empty — but one witness does not stand (Devarim 19:15)" do
|
||||
assert {:ok, r} = Bedikah.examine("...", "gpt", "", opts(:only_frame))
|
||||
assert r.verdict == :tov
|
||||
assert r.violations == []
|
||||
refute r.checks.frames.fired
|
||||
assert r.checks.frames.forms == %{}
|
||||
assert %{agency_displacement: %{witnesses: 1, claims: [%{"sentence" => "You pushed me there."}]}} = r.checks.frames.noted
|
||||
end
|
||||
|
||||
test "7. two witnesses: the same form in two sentences stands; the same sentence twice is one witness" do
|
||||
assert {:ok, r} = Bedikah.examine("...", "gpt", "", opts(:frame_twice))
|
||||
assert r.verdict == :lo_tov
|
||||
assert [v] = r.violations
|
||||
assert v =~ "agency_displacement"
|
||||
assert r.checks.frames.forms.agency_displacement.witnesses == 2
|
||||
assert r.checks.frames.forms.agency_displacement.stands_on == :sentences
|
||||
assert r.checks.frames.noted == %{}
|
||||
end
|
||||
|
||||
test "7. one sentence beside another check's violation stands (corroboration)" do
|
||||
assert {:ok, r} = Bedikah.examine("...", "gpt", "", opts(:frame_beside_authority))
|
||||
assert r.verdict == :lo_tov
|
||||
assert r.checks.authority.fired
|
||||
assert r.checks.frames.forms.virtue_certification.stands_on == :other_checks
|
||||
assert Enum.any?(r.violations, &(&1 =~ "virtue_certification"))
|
||||
end
|
||||
|
||||
test "7. two lone forms are each other's witness" do
|
||||
assert {:ok, r} = Bedikah.examine("...", "gpt", "", opts(:two_lone_forms))
|
||||
assert r.verdict == :lo_tov
|
||||
assert Map.keys(r.checks.frames.forms) |> Enum.sort() == [:contested_laundering, :source_asymmetry]
|
||||
assert r.checks.frames.forms.source_asymmetry.stands_on == :other_forms
|
||||
assert length(r.violations) == 2
|
||||
end
|
||||
|
||||
test "4–6. a structural claim alone is enough to examine — not empty" do
|
||||
|
||||
Reference in new issue
Block a user