diff --git a/benchmark/BENCHMARK.md b/benchmark/BENCHMARK.md index 79e0202..a70377d 100644 --- a/benchmark/BENCHMARK.md +++ b/benchmark/BENCHMARK.md @@ -59,6 +59,7 @@ template crop: for claude-sonnet-5). An introductory $2/$10 rate applies through 2026-08-31, so billed cost today is about a third lower than reported. Compiled replay makes zero model calls. +- **Identity-protection coverage: not captured in this results.json.** The armed-coverage metric was added to the generator on 2026-07-10; future runs report how many click steps carry the pre-click identity check and list the unarmed steps (which proceed with NO identity verification — see docs/LIMITS.md). ## Caveats — read before quoting these numbers diff --git a/benchmark/hybrid/BENCHMARK.md b/benchmark/hybrid/BENCHMARK.md index cb1ca94..3cbf04b 100644 --- a/benchmark/hybrid/BENCHMARK.md +++ b/benchmark/hybrid/BENCHMARK.md @@ -150,6 +150,7 @@ $0.0967), and `a` = the agent-only mean cost per run cache writes 1.25x, cache reads 0.1x input). An introductory $2/$10 rate applies through 2026-08-31, so billed cost today is roughly a third lower than reported. +- **Identity-protection coverage: not captured in this results.json.** The armed-coverage metric was added to the generator on 2026-07-10; future runs report how many click steps carry the pre-click identity check and list the unarmed steps (which proceed with NO identity verification — see docs/LIMITS.md). - **Hard cost guardrails.** One shared budget across ALL paid runs (B, C, and D's fallbacks): preflight probe before any spend; per-run cap $1.50; total ceiling $8.00 enforced diff --git a/benchmark/openemr/BENCHMARK.md b/benchmark/openemr/BENCHMARK.md index 6a958ec..9c63c19 100644 --- a/benchmark/openemr/BENCHMARK.md +++ b/benchmark/openemr/BENCHMARK.md @@ -88,6 +88,7 @@ below. reads at 0.1x the input rate). An introductory $2/$10 rate applies through 2026-08-31, so billed cost today is about a third lower than reported. Compiled replay makes zero model calls. +- **Identity-protection coverage: not captured in this results.json.** The armed-coverage metric was added to the generator on 2026-07-10; future runs report how many click steps carry the pre-click identity check and list the unarmed steps (which proceed with NO identity verification — see docs/LIMITS.md). - **Prompt caching.** The agent loop places `cache_control` breakpoints on the tool definition and the newest user message each turn, so each API call reuses the cached conversation prefix; screenshot truncation diff --git a/docs/LIMITS.md b/docs/LIMITS.md index 93a98c6..24f0527 100644 --- a/docs/LIMITS.md +++ b/docs/LIMITS.md @@ -16,8 +16,23 @@ list: wrong-entity clicks in repeated structures and unverified typed input were fixed on 2026-07-08; anti-robust postcondition mining — clock fragments, "longest new text" grabbing data, DOB banners eaten by the timestamp filter, parameter values leaking into landmarks — was fixed on -2026-07-09. Both moved to the safe-halt section below.) +2026-07-09; near-name sibling rows sailing through the identity matcher +were fixed on 2026-07-10. All moved to the safe-halt section below.) +- **Identity verification covers ONLY armed steps — and real bundles arm + a minority of clicks.** The most recent live OpenEMR check (2026-07-09) + armed **4 of 12** click steps; the earlier fresh bundle armed 7 of 12. + The rest compile with no identity context at all (no readable row text + outside the target's own crop: login buttons, icon-only pencils, + too-generic bands) and an UNARMED click proceeds with **no identity + check whatsoever** — every guarantee in the wrong-entity section below + is scoped to armed steps only. As of this PR the coverage is a + first-class, auditable metric: `workflow.json` carries per-step + `identity_armed` / `identity_unarmed_reason` (auditable BEFORE running), + every run's REPORT.md states "N of M click steps identity-armed" and + lists the unarmed steps by id with the reason, and the benchmark + methodology sections report the same number. Disclosure does not close + the gap: a wrong-entity click on an unarmed step is still silent. - **Steps with no visual AND no structural effect assert nothing.** Since 2026-07-09 an action whose recorded before/after frames are identical falls back to structural postconditions (URL change, title change, new @@ -51,29 +66,77 @@ Failures below stop the run with an accurate per-step report — no wrong actions observed — at the cost of availability: - **Wrong-entity targets in repeated structures** (fixed 2026-07-08, - matcher hardened 2026-07-09 after adversarial review; formerly the top - silent failure mode). When data shifts between runs — a row added above - the target, the target's row deleted, a look-alike sibling, a re-sorted - table — the resolver still finds a pixel-identical target at a - plausible position, but the pre-click **identity check** compares the - resolved row's text (the OCR lines of the resolved point's own text - row, minus the target's own label and timestamp-bearing cells) against - the recorded row and refuses to click on mismatch. Matching is - order-insensitive per token (OCR re-reads the same band in different - segmentation orders) and requires BOTH >= 0.8 coverage of the recorded - band AND no contiguous uncovered run longer than 4 squashed characters - — a wrong name is a contiguous mismatch, so long shared row text cannot - buy it a pass. For a parameterized target (e.g. *which patient* to - open), the run's value is substituted into the recorded band and the - whole substituted band must match — a row that merely mentions the - run's value does not verify. Caveats, disclosed: when the live band is - unreadable even at 2x resolution, reversible steps proceed exactly as - before with the step flagged in the run report (`identity: - "unreadable"`), and only compile-time-marked irreversible steps refuse - (see the dangerous list); dense-table OCR undercount is real, which is - why the 2x retry exists; names within OCR-jitter distance of each other - (whole-token similarity >= 0.7, e.g. "Jane"/"Janet") are - indistinguishable from misreads and verify. + matcher hardened 2026-07-09, matcher REBUILT 2026-07-10 after the + near-name sibling reopening, then REDESIGNED the same day after the + out-of-corpus review found 13 silent-verify probes — the fourth + reopening of this P0; formerly the top silent failure mode). When data + shifts between runs — a row added above the target, the target's row + deleted, a look-alike sibling, a re-sorted table — the resolver still + finds a pixel-identical target at a plausible position, but the + pre-click **identity check** compares the resolved row's text (the OCR + lines of the resolved point's own text row, minus the target's own + label and volatile cells, excluded identically at record and replay + time) against the recorded row and refuses to click on mismatch. + Matching is order-insensitive per token (OCR re-reads the same band in + different segmentation orders), accepts a token ONLY when it is + OCR-equivalent — identical under the character-confusion classes real + engines produce (l/1/i, O/0, 5/s, rn/m, cl/d, ...) or a + full-consumption token split/join — and the decision holds several + budgets at once: >= 0.8 coverage; no contiguous uncovered run over 4 + squashed characters; zero *contradicted* characters (near-miss + siblings — Phil/Philip, John/Joan, an off-by-one DOB or an all-DIGIT + swapped MRN digit, a Jr/Sr suffix on one side, a replaced word or a + replaced 1-2 char token such as a middle initial or the SEX column); + zero *suspect* characters — a DISCRIMINATOR token matched ONLY by a + confusion equivalence, which comes in two kinds: a **name** collision + (a name-plausible LETTER-LETTER confusion — Neil/Nell, Clay/Day, + Marnie/Mamie — indistinguishable from a real sibling), and an + **identifier** collision (a RECORDED token that contains a digit — an + MRN, account number, chart ref or DOB — matched only across a + letter/DIGIT confusion, l/1, O/0, S/5, Z/2, B/8, g/9, so 'A01234' and + 'AO1234' are DIFFERENT identifiers, exactly what disambiguates + same-name patients); zero unexplained observed name-shaped tokens (an + appended middle name, a second row OCR-merged into the band, a + message/cc row that merely MENTIONS the recorded patient); and no + absent name-like alphabetic token of 4+ characters (a band must not + verify with its identity token never read). The 2026-07-09 matcher's + containment and 0.7-similarity tiers measured 53.9% false-accept on + frozen corpus v1; the first rebuild measured 0.0% there but the FIRST + 2026-07-10 review showed that zero was partially tautological (v1's + labeling rule excluded confusion-collided names, short-token + discriminators, observed supersets and absent-name shapes; 13 + out-of-corpus probes in those classes all silently VERIFIED), and the + SECOND 2026-07-10 review then found the suspect budget guarded NAME + tokens only — it was OFF for MRNs/account numbers, so a different + patient's alphanumeric identifier one letter/digit-confusable char + apart silently VERIFIED (the 5th wrong-patient reopening; v1's + `mrn_digit_swap` class only ever changed DIGITS, which are never + confusion-equivalent, so it could not surface the hole). With the + identifier-suspect fix the matcher measures **0.000% false accepts on + corpus v1+v2+v3 plus the 18-probe set** — scoped exactly to those + corpora, not to the world, and the operating point was fit on the same + corpora that produce the headline (docs/validation/IDENTITY_ROC.md + states this bias plainly). The availability bill is equally plain: + **28.2% false aborts on v1's noise classes** (up from 10.7% pre-review + and 21.2% after the first redesign), concentrated in occlusion — where + a recount showed ~half the aborted bands still had BOTH name tokens + readable and aborted on trailing DOB/MRN loss, an availability cost, + not the "correct epistemic refusal" the earlier doc claimed — plus + digit-class OCR noise that lands on an identifier token and now aborts + (v2's `digit_confusion_true_row` class rose from 0% to ~49%: the + true-row identifier-noise cost of the 5th-reopening fix), the + letter-letter confusion mechanism, and capitalized adjacent-row bleed. + For a parameterized target (e.g. *which patient* + to open), the run's value is substituted into the recorded band and + the whole substituted band must match — a row that merely mentions + the run's value does not verify. Caveats, disclosed: only ARMED steps + get any of this (see the dangerous list — live bundles armed 4-7 of + 12 clicks); when the live band is unreadable even at 2x resolution, + reversible steps proceed exactly as before with the step flagged in + the run report (`identity: "unreadable"`), and only + compile-time-marked irreversible steps refuse; dense-table OCR + undercount is real, which is why the 2x retry exists. Residual + verify/abort classes are listed in "Known remaining" below. - **Typed input that cannot be confirmed** (fixed 2026-07-08, verification hardened 2026-07-09). After every TYPE action, an OCR-able typed value must be READ back from the field region (2x-resolution retry included); @@ -186,7 +249,60 @@ direction (the region won't match under a different run value and the run stops safely); it cannot cause a wrong action, but it is not linted (see known remaining). -## Known remaining (deliberately not attempted in the 2026-07-08/09 fixes) +## Known remaining (deliberately not attempted in the 2026-07-08/09/10 fixes) + +Residual identity verify/abort classes, restored and expanded from the +pre-review disclosure this PR briefly deleted (the old page honestly said +"names within OCR-jitter distance verify"; that class now ABORTS, and +these are what remain): + +- **'Ann Marie' vs 'Annmarie' verify as the same patient** — the + token-join rule (OCR legitimately splits one token into two) is + raw-equal after concatenation, so two real patients differing only in + name spacing/hyphen-joining are indistinguishable and verify. +- **Names differing only by case or whitespace verify** — comparison is + case- and whitespace-insensitive by construction ('MacDonald' vs + 'Macdonald' is the same band). +- **1-2 character letter-letter name confusions verify** — the name + suspect rule needs 3+ chars, so a middle initial 'I' vs 'L' + (confusion-equivalent) still passes; a REPLACED initial ('J' vs 'K') + is caught, an ADDED short token ('Phil M' vs 'Phil J M') is not (the + unexplained-token budget starts at 3 chars). +- **Short (1-2 char) ALL-ALPHA codes confused with a digit verify** — + the identifier suspect rule keys on the RECORDED token carrying a + digit; a 2-char alpha code ('AB') that OCRs to 'A8' has an all-alpha + recorded token (so the identifier rule does not see it) and is under + the 3-char name floor. Full-length alphanumeric identifiers (MRNs, + account numbers) are covered; this residual is only the very short + all-alpha code. +- **Identifier letter/DIGIT collision is now CAUGHT** (5th-reopening + fix, second review): a different patient's MRN/account number one + OCR-confusable char apart ('A01234' vs 'AO1234') aborts, even when the + name and DOB raw-match. Cost, disclosed next. +- **True-row identifier OCR noise now ABORTS** — the price of the line + above: when OCR garbles the CORRECT row's own identifier by a + letter/digit-confusable char, the run halts rather than gamble on + identity (indistinguishable at band level from a different-patient + row). Availability cost, the cheap direction. All-DIGIT identifier + differences (748291 vs 748292) are unaffected — not + confusion-equivalent, still caught as a genuine mismatch. +- **Indistinguishable-class aborts are permanent** — a true row whose + name OCR letter-letter-garbles ('Neil' read as 'Nell') aborts every + time, because the band is textually identical to a real sibling; + this is the safety direction and it costs availability on noisy rows. +- **Compiled-only users pay ~28% halts on v1-style noisy rows as the + availability price of the redesigns** (up from ~21% before the + identifier-suspect fix; 0% on clean splits/bleed, ~49% on the + digit_confusion_true_row class — see IDENTITY_ROC.md per-class + tables); hybrid deployments convert each halt into one ~$0.10 fallback + escalation. +- **The operating point is fit to the frozen corpora that produce the + headline zero** — freezing prevents tuning the corpus toward the + matcher, not the matcher's thresholds toward the corpus; every + zero-claim on this page is scoped to corpus v1+v2+v3 plus the 18 + out-of-corpus reviewer probes. + +Other known-remaining items: - **Cosmetic global drift** (browser zoom, device scale factor, font-size preference) still zeroes availability — false abort at the first step. diff --git a/docs/validation/IDENTITY_ROC.md b/docs/validation/IDENTITY_ROC.md new file mode 100644 index 0000000..880ee9d --- /dev/null +++ b/docs/validation/IDENTITY_ROC.md @@ -0,0 +1,154 @@ +# Identity band matcher — held-out adversarial ROC (corpora v1+v2+v3) + +Generated by `python -m openadapt_flow.validation.identity_roc` from the FROZEN corpora: v1 (4360 pairs, seed 20260710), v2 (2240 pairs, seed 20260711, the classes v1 excluded by construction) and v3 (300 pairs, seed 20260712, identifier letter/digit collisions — the 5th-reopening class), hash manifests committed before the matcher changes they evaluate. Do not edit by hand. + +**Scope of every number below, stated plainly:** measured on corpus v1+v2+v3 plus the 18 out-of-corpus reviewer probes (`tests/test_identity_out_of_corpus.py`) — not 'in the world'. The operating point is FIT TO THESE CORPORA: freezing the corpora before the matcher change prevents tuning the corpus toward the matcher, but nothing prevents the operating point from being tuned toward the corpora — v1's own 0.000% headline was shown partially tautological by the first 2026-07-10 review (its labeling rule excluded confusion-collided names, short-token discriminators, observed supersets and absent-name shapes by construction), and v2's zero was in turn falsified by the SECOND review (its `mrn_digit_swap` class only ever swapped DIGITS, so it never surfaced the identifier letter/digit collision the 5th reopening exploited). v3 exists because of that second review; the same criticism could apply again. + +- **false accept** = a `different_entity` OR `indistinguishable` pair VERIFIED — a wrong-patient click, catastrophic in an EMR. +- **false abort** = a `same_entity` pair refused — one hybrid fallback (~$0.10) or a human retry. +- **justified abort** = an `indistinguishable` pair refused — the true row misread by a letter-letter confusion is textually identical to a real sibling (Neil misread as Nell vs an actual patient Nell), so ABORT is correct for BOTH readings and is never counted as a false abort. + +![ROC](identity_roc.png) + +## Chosen operating point + +`contradiction_sim=0.62`, `coverage_threshold=0.8`, `uncovered_run_cap=4`, `contradicted_chars_cap=0`, `suspect_chars_cap=0`, `unexplained_name_tokens_cap=0`, `absent_name_token_cap=3` → +**false accept 0.000%, false abort 26.17%, indistinguishable-class abort 100.0%** across v1+v2+v3. + +Reference points at the same coverage/run/contradiction caps: + +- legacy matcher (pre-rebuild tiers): FA 71.1% / FAbort 10.1%; +- the SHIPPED pre-review decision (new budgets off): FA 33.80% / FAbort 8.85% — every one of those false accepts is an out-of-corpus-review class (collision/short-token/superset/absent-name) that v1 could not see; +- per corpus at the production point: v1 FA 0.000% / FAbort 28.24%; v2 FA 0.000% / FAbort 16.22%, indistinguishable abort 100.0%; v3 (identifier collisions) FA 0.000%. + +**The weighting, out loud:** a false accept is a wrong-patient write on a real EMR — a clinical-safety event that downstream note verification does NOT catch (the note really is saved, in the wrong chart). A false abort costs one ~$0.10 hybrid-fallback escalation or a human retry. We price that asymmetry at four-plus orders of magnitude, so only zero-measured-false-accept points were considered, and the six budgets are kept independently strict (defense in depth) rather than taking the minimum-false-abort zero-FA corner. The availability price is real and stated in the tables below: the v1 false-abort rate rose from 10.7% (pre-review matcher) through 21.2% (first redesign) to 28.2% after the identifier-suspect fix — concentrated in occlusion, digit-class OCR noise that lands on an identifier token (DOB/MRN/phone) and now aborts (the true-row identifier-noise cost, see below), the indistinguishable letter-letter mechanism, and capitalized adjacent-row bleed — because each review showed the cheaper operating point was buying availability with silent wrong-patient classes. + +**Why not the cheaper zero-FA corner** (`coverage 0.85 / run_cap 8 / absent-name cap off`, FAbort 24.48% vs 26.17%): that corner disables the absent-name budget and relies on the coverage threshold (0.85) sitting just above the Major-4 probe's coverage (0.826 for 'Belford, Phil' -> 'Belford,'). The protection is an artifact of band length: the same absent 4-char name inside a longer band ('Montgomery-Winchester, Phil 1985-03-12 M MRN A482913' loses 'Phil' at coverage 0.915) clears the threshold and verifies with the identity token never read. The absent-name cap refuses structurally, independent of band length — that independence is what the extra +1.69% false aborts buy. + +## The indistinguishable trade-off + +The suspect rule cannot verify a letter-letter-collided name and cannot distinguish a misread from a sibling — nobody can, at band level: the bands are textually identical. The price of refusing the Neil/Nell sibling (Blocker 1) is refusing the true row whenever OCR letter-letter-garbles a name token: + +- v2 `confusion_misread_true_row` (all 200 labeled indistinguishable): 100.0% abort — correct for both readings, counted as justified; +- v1 `ocr_confusion` / `compound_noise` false aborts (65.8% / 68.3%) are dominated by the same letter-letter shapes (v1 labels them same_entity because its generator KNOWS it applied noise; the matcher cannot know that, and treating them as verifiable is exactly the Blocker-1 hole). + +## The identifier letter/digit collision (5th reopening) + +The SECOND review found the suspect budget guarded NAME tokens only (`_name_plausible` is False for any token with a digit), so it was OFF for MRNs/account numbers while the confusion canonicalization (l/1, O/0, S/5, Z/2, B/8, g/9) still applied to them — a DIFFERENT patient's identifier one confusable char apart ('A01234' vs 'AO1234') silently VERIFIED, defeating MRN-based disambiguation of same-name patients. The suspect rule now also fires on a confusion-only match where the RECORDED token contains a digit (an identifier): + +- v3 `id_letter_digit_collision` (300 pairs, DIFFERENT patients one confusable identifier char apart): FA 0.0% (legacy 100.0%). +- **Chosen design: option A, no corroboration escape.** A confusion-differing identifier aborts even when name and DOB raw-match, so two same-name patients distinguished ONLY by an OCR-confusable identifier char never verify — the case a 'corroborate with name+DOB' design (option B) would wrongly ALLOW (two real patients can share a name and DOB; the MRN is the sole unique key). Option B's corroboration escape is itself a wrong-patient verify, so it was rejected for the clinical release. +- **Scoping matters:** the rule keys on the RECORDED token carrying a digit, so a NAME OCR'd with a digit-class confusion ('Belford' -> 'Be1ford') stays a clean match (the recorded 'Belford' is all-alpha — proof it is a name), while an identifier aborts. All-digit differences (748291 vs 748292) are not confusion-equivalent and mismatch via coverage/contradiction as before. +- **The availability cost, honestly:** true-row OCR noise ON an identifier now aborts too — indistinguishable at band level from a different patient. v2 `digit_confusion_true_row` rose from 0.0% to 48.7% false aborts, and v1's digit-noise classes rose correspondingly. That is the cheap direction (a ~$0.10 halt vs a wrong-patient write) and is disclosed in docs/LIMITS.md. + +## Occlusion recount (correcting the earlier framing) + +The earlier IDENTITY_ROC.md claimed occlusion false-aborts were 'bands whose identity tokens were not read at all — refusing is the correct epistemic outcome'. The reviewer measured otherwise and this recount confirms it: + +- shipped decision: 216/240 occlusion aborts, of which **102** still had BOTH name tokens readable (the abort was trailing DOB/MRN loss, not unreadable identity); +- production decision: 224/240 aborts, **107** with both name tokens readable. + +So roughly half of the occlusion aborts are a plain availability cost on rows whose name WAS readable — kept because a band that lost its trailing discriminators (DOB/MRN) retains only the name, and the name alone is exactly the surface the collision classes attack. That is a priced trade-off, not an epistemic virtue. + +## Realistic-exposure analysis (collision shapes) + +What catches the wrong row if the suspect rule is disabled — i.e. what does the suspect rule alone defend? (Correcting the first review's write-up: its 'ids differ -> 180/180 caught without the suspect rule' claim was true only because those pairs differ in the NAME by a letter-letter confusion AND carry distinct DOB/MRN. It did NOT cover the letter/DIGIT identifier collision, which the second review then exploited — see the v3 row.) + +| collision class | n | FA at production | FA without the suspect rule | +| --- | --- | --- | --- | +| name collision, distinct DOB/MRN present | 180 | 0 | 0 | +| name collision, identical DOB/MRN (probe shape) | 180 | 0 | 180 | +| name collision, name is the ONLY discriminator | 180 | 0 | 180 | +| identifier letter/DIGIT collision (v3) | 300 | 0 | 300 | + +Reading: a name collision with distinct DOB/MRN is caught by the absence/contradiction budgets alone (180/180 without the suspect rule). But when the collision is in the SOLE discriminator — a name with no other distinguishing token, or an IDENTIFIER (the v3 row: 300/300 verify without the suspect rule, 0 with it) — the suspect rule is the only defense. It defends only against collisions INSIDE the frozen confusion table: an exotic misread outside the table, a collision by case/whitespace only, the 'Ann Marie'/'Annmarie' token-join equivalence, and short (1-2 char) ALL-ALPHA codes confused with a digit (the recorded token carries no digit, so the identifier rule does not see it, and the name rule needs >= 3 chars) remain verifiable — disclosed in docs/LIMITS.md. + +## Error rates by generator category (at the production decision) + +### Corpus v1 + +| category | label | legacy matcher | redesigned matcher | +| --- | --- | --- | --- | +| `adjacent_row_mixture` | false accept | 0.0% | 0.0% | +| `dob_off_by_one_field` | false accept | 99.1% | 0.0% | +| `generational_suffix` | false accept | 99.1% | 0.0% | +| `mrn_digit_swap` | false accept | 50.0% | 0.0% | +| `prefix_extension` | false accept | 72.3% | 0.0% | +| `same_first_diff_surname` | false accept | 9.1% | 0.0% | +| `same_surname_diff_first` | false accept | 15.5% | 0.0% | +| `shared_clinical_text` | false accept | 0.5% | 0.0% | +| `single_letter_edit` | false accept | 98.2% | 0.0% | +| `transposition` | false accept | 95.5% | 0.0% | +| `case_whitespace` | false abort | 0.0% | 0.0% | +| `compound_noise` | false abort | 16.7% | 68.3% | +| `dropped_short_tokens` | false abort | 0.4% | 0.8% | +| `occlusion` | false abort | 89.6% | 93.3% | +| `ocr_confusion` | false abort | 2.5% | 65.8% | +| `reordered_segments` | false abort | 0.0% | 0.0% | +| `spurious_tokens` | false abort | 0.0% | 25.8% | +| `token_join` | false abort | 0.0% | 0.0% | +| `token_split` | false abort | 0.0% | 0.0% | + +### Corpus v2 + +| category | label | legacy matcher | redesigned matcher | +| --- | --- | --- | --- | +| `absent_name_token` | false accept | 95.3% | 0.0% | +| `confusion_collision_ids_differ` | false accept | 0.0% | 0.0% | +| `confusion_collision_ids_same` | false accept | 95.0% | 0.0% | +| `confusion_collision_name_only` | false accept | 93.9% | 0.0% | +| `middle_initial` | false accept | 100.0% | 0.0% | +| `sex_column` | false accept | 100.0% | 0.0% | +| `superset_appended_name` | false accept | 100.0% | 0.0% | +| `superset_merged_row` | false accept | 100.0% | 0.0% | +| `superset_title_mention` | false accept | 100.0% | 0.0% | +| `two_char_name` | false accept | 100.0% | 0.0% | +| `confusion_misread_true_row` | false accept (verify on indistinguishable) | 90.5% | 0.0% | +| `adjacent_bleed_lowercase` | false abort | 0.0% | 0.0% | +| `digit_confusion_true_row` | false abort | 0.7% | 48.7% | +| `hyphenated_split` | false abort | 0.0% | 0.0% | + +### Corpus v3 (identifier letter/digit collisions) + +| category | label | legacy matcher | redesigned matcher | +| --- | --- | --- | --- | +| `id_letter_digit_collision` | false accept | 100.0% | 0.0% | + +## Pareto frontier (redesigned matcher, v1+v2+v3) + +| sim | coverage | run_cap | contra | suspect | name | absent-alpha | false accept | false abort | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 0.75 | 0.85 | 8 | 0 | 0 | 0 | off | 0.000% | 24.48% | +| 0.62 | 0.8 | 8 | 0 | 0 | 0 | off | 3.263% | 24.25% | +| 0.75 | 0.8 | 8 | 0 | 0 | 0 | off | 3.287% | 24.18% | +| 0.62 | 0.7 | 8 | 0 | 0 | 0 | off | 3.427% | 23.60% | +| 0.75 | 0.7 | 8 | 0 | 0 | 0 | off | 3.450% | 23.52% | +| 0.75 | 0.85 | 8 | 0 | 0 | 1 | off | 3.613% | 21.88% | +| 0.62 | 0.8 | 8 | 0 | 0 | 1 | off | 6.876% | 21.65% | +| 0.75 | 0.8 | 8 | 0 | 0 | 1 | off | 6.900% | 21.57% | +| 0.62 | 0.7 | 8 | 0 | 0 | 1 | off | 7.040% | 21.00% | +| 0.75 | 0.7 | 8 | 0 | 0 | 1 | off | 7.063% | 20.92% | +| 0.62 | 0.7 | 8 | 0 | 0 | off | off | 13.916% | 20.84% | +| 0.75 | 0.7 | 8 | 0 | 0 | off | off | 13.939% | 20.77% | +| 0.75 | 0.85 | 8 | 0 | off | 0 | off | 20.047% | 10.54% | +| 0.62 | 0.8 | 8 | 0 | off | 0 | off | 23.310% | 10.31% | +| 0.75 | 0.8 | 8 | 0 | off | 0 | off | 23.333% | 10.23% | +| 0.62 | 0.7 | 8 | 0 | off | 0 | off | 23.473% | 9.66% | +| 0.75 | 0.7 | 8 | 0 | off | 0 | off | 23.497% | 9.58% | +| 0.75 | 0.85 | 8 | 0 | off | 1 | off | 23.660% | 7.62% | +| 0.62 | 0.8 | 8 | 0 | off | 1 | off | 26.923% | 7.39% | +| 0.75 | 0.8 | 8 | 0 | off | 1 | off | 26.946% | 7.32% | +| 0.62 | 0.7 | 8 | 0 | off | 1 | off | 27.086% | 6.74% | +| 0.75 | 0.7 | 8 | 0 | off | 1 | off | 27.110% | 6.67% | +| 0.62 | 0.7 | 8 | 0 | off | off | off | 33.963% | 6.59% | +| 0.75 | 0.7 | 8 | 0 | off | off | off | 33.986% | 6.51% | +| 0.62 | 0.75 | 8 | off | off | 1 | off | 67.156% | 6.48% | +| 0.75 | 0.75 | 8 | off | off | 1 | off | 67.156% | 6.48% | +| 0.62 | 0.7 | 8 | off | off | 1 | off | 68.578% | 6.36% | +| 0.75 | 0.7 | 8 | off | off | 1 | off | 68.578% | 6.36% | +| 0.62 | 0.75 | 8 | off | off | off | off | 74.289% | 6.28% | +| 0.75 | 0.75 | 8 | off | off | off | off | 74.289% | 6.28% | +| 0.62 | 0.7 | 8 | off | off | off | off | 75.711% | 6.17% | +| 0.75 | 0.7 | 8 | off | off | off | off | 75.711% | 6.17% | + +Raw sweep data: `identity_roc.json`. The operating point is pinned by boundary tests in `tests/test_identity.py`; the sibling probes and the 18 out-of-corpus reviewer probes (13 first review + 5 identifier collision) are pinned as permanent mismatches in `tests/test_identity.py` and `tests/test_identity_out_of_corpus.py`. diff --git a/docs/validation/VALIDATION.md b/docs/validation/VALIDATION.md index 2070225..a11ccda 100644 --- a/docs/validation/VALIDATION.md +++ b/docs/validation/VALIDATION.md @@ -1,7 +1,10 @@ # Adversarial validation — failure-mode matrix Date: 2026-07-08 (initial audit and same-day fix); updated 2026-07-09 -(postcondition-mining fix + live re-run). This document is the +(postcondition-mining fix + live re-run); updated 2026-07-10 (identity +matcher rebuilt after the THIRD wrong-patient reopening — near-name +siblings — with a frozen held-out adversarial corpus and a published +ROC; see the 2026-07-10 fix update). This document is the result of deliberately trying to break compiled replay before anyone else does. Every experiment ran with **zero model calls and $0 of API spend**: compiled-replay only, no grounder, no agent arm. Failures found here are @@ -27,7 +30,9 @@ columns and the characterization tests pin the new behavior. recorded characters may exceed 4 — a wrong entity is a contiguous mismatch (a replaced name), so long shared row text cannot buy it a pass. Measured: true row 1.0 (still 1.0 under injected per-character - OCR jitter, via a 0.7 whole-token similarity tier); look-alike row + OCR jitter, via a 0.7 whole-token similarity tier — REMOVED + 2026-07-10: that tier verified near-name siblings, the third + wrong-patient reopening; see that fix update below); look-alike row sharing all non-name columns ~0.67 coverage with a 10-char uncovered name run. When a workflow parameter's demonstrated value is embedded in the recorded band (a parameterized *target*, e.g. the patient row), @@ -297,6 +302,256 @@ Known remaining, documented here deliberately (not attempted): - **REGION_STABLE templates can embed rendered parameter pixels** (see the lint scope note above) — false-halt direction only. +## Fix update (2026-07-10, `feat/identity-roc`): the THIRD wrong-patient reopening + +Said plainly: the wrong-patient P0 reopened a **third** time. History: +pixel-lookalike rows (fixed 2026-07-08 by the context bands) → residue- +blind coverage + short-param disarm (fixed 2026-07-09 by the token +matcher + residue cap) → **near-name siblings** (this fix). The +2026-07-09 matcher returned `(coverage=1.0, residue=0)` — VERIFIED — for +all four of these reproduced probes: + +- recorded `Belford, Phil 1985-03-12 M` vs observed + `Belford, Philip 1985-03-12 M` (containment tier: 'Phil' ⊂ 'Philip'); +- the reverse direction (similarity tier: ratio 0.8); +- `Smith, John 1985-03-12 M` vs `Smith, Joan 1985-03-12 M` (similarity + tier: SequenceMatcher('John','Joan') = 0.75 >= 0.7); +- `Belford, Phil ...` vs `Belford, Phillipa ...` (containment tier). + +Real EMR rows are full of near-name siblings — family members sharing a +surname, Jr/Sr, John/Joan — and downstream note verification does NOT +catch a wrong-patient write: the note really is saved, in the wrong +chart. All four probes are pinned as permanent mismatches in +`tests/test_identity.py`. + +**Methodology change — held-out corpus BEFORE the fix.** The recurring +failure mode of this document is fixing against exactly the adversaries +that found the last bug (a fixed point, not a false-negative rate). This +fix broke the cycle: a deterministic, seeded adversarial corpus +(`openadapt_flow/validation/adversary_corpus.py`, seed 20260710, 4360 +pairs — 2200 `different_entity` across 10 generator categories, 2160 +`same_entity` OCR-noise pairs across 9) was generated and **frozen +first** — its sha256 manifest is committed +(`adversary_corpus_manifest.json`) and pinned by tests, so post-hoc +tuning of the corpus toward the matcher is detectable in git history — +and only then was the matcher evaluated and rebuilt. No generator bugs +were found or fixed after first evaluation (the generator is byte- +identical to the pre-evaluation commit). + +**Measured, before → after** (full tables and the ROC chart: +[IDENTITY_ROC.md](IDENTITY_ROC.md), `identity_roc.png`): + +| corpus category (`different_entity`) | old matcher false-accept | new | +|---|---|---| +| DOB off by one field | 99.1% | 0.0% | +| generational suffix (Jr/Sr/II) | 99.1% | 0.0% | +| single-letter edit (John/Joan) | 98.2% | 0.0% | +| transposition | 95.5% | 0.0% | +| prefix extension (Phil/Philip) | 72.3% | 0.0% | +| MRN digit swap | 50.0% | 0.0% | +| same surname, different first | 15.5% | 0.0% | +| **overall (2200 pairs)** | **53.9%** | **0.0%** | + +(Scope caveat, added 2026-07-10: this 0.0% is on corpus v1 ONLY, and the +out-of-corpus review later the same day showed it was partially +tautological — v1's labeling rule excludes confusion-collided names, +short-token discriminators, observed supersets and absent-name shapes +by construction, and 13 probes in those classes all VERIFIED against +this exact matcher. See the out-of-corpus fix update below.) + +False aborts on the `same_entity` side: 12.1% → 10.7% (i.e. the fix also +*reduced* the availability cost slightly; the remainder is ~90% +concentrated in the occlusion category — ~~bands whose identity tokens +were never read, where refusing is the correct epistemic outcome~~ +**CORRECTED by the 2026-07-10 out-of-corpus review's recount**: 102 of +the 216 occlusion aborts at this operating point still had BOTH name +tokens readable and aborted on trailing DOB/MRN loss. Roughly half the +occlusion refusals were a plain availability cost on rows whose name +WAS readable — a priced trade-off, not the epistemic virtue this +paragraph originally claimed; see the out-of-corpus fix update below). + +**The rebuild** (`runtime/identity.py`): token matching accepts ONLY +OCR-equivalence — identity under the character-confusion classes real +engines produce (l/1/i, O/0, 5/s, 2/z, 8/b, 9/g, rn/m, cl/d, vv/w) — +plus full-consumption token splits/joins; the containment and raw- +similarity tiers are gone. Unmatched tokens are split into *absence* +(uncovered runs, budgeted as before — OCR dropout, the cheap direction) +and *contradiction* (near-miss similarity >= 0.62 on canonical forms, +semantic containment with alphabetic residue, replacement by an +unexplained observed token, generational suffix on one side), which has +its own budget of ZERO characters. The modal-band permutation class, OCR +jitter, splits/joins and the MockMed/OpenEMR true-row shapes all still +verify (pinned). + +**Operating point, chosen from the ROC with the weighting said out +loud** (a wrong-patient write is catastrophic; a false abort is a ~$0.10 +hybrid fallback — we price that at 4+ orders of magnitude): coverage +0.8, uncovered-run cap 4, contradiction_sim 0.62, contradiction cap 0. +NOT the on-corpus Pareto-minimal false-abort corner (coverage 0.7 / run +cap 8, FAbort 7.96%): that corner's zero false accepts rests entirely on +the contradiction rule (evade it and FA is 60.8%), while at 0.8/4 the +older coverage/run budgets independently stop 79.5% of the corpus even +with contradiction disabled — defense in depth bought with 2.7pp of +false aborts concentrated in occlusion shapes (~~unreadable-name~~ see +the recount correction above: about half of those bands still had +readable names). Regression nets: the operating point is pinned by +boundary tests, and a corpus-wide test asserts **zero** false accepts +(a rate, not a probe list) plus a false-abort budget. (Both the zero +and the budget were superseded the same day — see the out-of-corpus +fix update below.) + +**Protection coverage became a first-class metric in the same change** +(it was previously a buried sentence in a live-check note): the live +2026-07-09 OpenEMR check armed only **4 of 12** click steps — every +identity guarantee above applies to armed steps ONLY, and an unarmed +click proceeds with no identity check at all. Now: `workflow.json` +carries per-step `identity_armed` / `identity_unarmed_reason` (bundle +auditable before running), every REPORT.md states "N of M click steps +identity-armed" and lists unarmed steps by id with the compile-time +reason, benchmark BENCHMARK.md methodology sections carry the metric +(historical results.json files lack the per-run data; the generators now +record it and the committed files note that), and docs/LIMITS.md leads +the dangerous list with it. + +## Fix update (2026-07-10, out-of-corpus review): the corpus-v1 zero was partially tautological + +Said plainly: the wrong-patient P0 reopened a **fourth** time, hours +after the third fix — and this time the frozen corpus itself was part of +the failure. The review verified **13 probes against the shipped matcher +at the shipped operating point; all 13 silently VERIFIED**, and every +one belongs to a class corpus v1 excluded BY CONSTRUCTION (its labeling +rule treats confusion-equivalent bands as same-entity and rejects them +as "mislabeled"; short-token, observed-superset and absent-name shapes +were never generated). The probes are pinned verbatim in +`tests/test_identity_out_of_corpus.py`, committed FIRST (failing) as the +acceptance criteria: + +- **Blocker 1 — canonicalization equates distinct names.** 'Smith, + Neil' vs 'Smith, Nell' (i/l), 'Clay, Susan' vs 'Day, Susan' (cl/d), + 'Baker, Marnie' vs 'Baker, Mamie' (rn/m), 'Gail Turner' vs 'Gall + Turner' (i/l): different real patients whose names canonicalize + identically all verified at coverage 1.0. Param mode was NOT + vulnerable — its raw `longest_run` check rejects Neil→Nell — i.e. the + stricter raw pattern already existed in the codebase. +- **Blocker 2 — sub-MIN_BLOCK tokens invisible to contradiction.** A + changed middle initial ('John J' vs 'John K'), the SEX column ('M' vs + 'F'), and changed 2-char names ('Al'/'Bo', 'Jo'/'Ed') all verified. +- **Blocker 3 — observed-side supersets always verified.** Context mode + had no unexplained-observed-token budget (param mode HAS one): + appended middle names, a two-row OCR merge, and the realistic shape — + a message/cc row that merely MENTIONS the recorded patient — all + verified. +- **Major 4 — absent identity token at the run cap.** 'Belford, Phil' + vs 'Belford,' verified with the 4-char first name never read; the + shape was even PINNED AS CORRECT in the operating-point boundary test + (that pin is now flipped). + +**The redesign** (same file, `runtime/identity.py`): three new budgets +and one class weighting, all zero-tolerance at the operating point — +*suspect* characters (a name-plausible token matched only by a +LETTER-LETTER confusion: indistinguishable from a real sibling, so it +refuses; digit/symbol confusions stay clean matches because names +contain no digits), *unexplained observed name-shaped tokens* +(closes the superset hole; lowercase adjacent-row bleed stays exempt), +count-based *short-token replacement* contradiction (a replaced initial +that duplicates the sex column is caught by the multiset even when +per-pair matching looks "explained"), and an *absent name-like token* +cap (absence of a 4+ char alphabetic token refuses even inside the +generic run cap — trailing-numerics dropout keeps the old tolerance). +The replayer also now extracts the LIVE band exactly as the compiler +extracted the recorded band (target's own crop excluded, volatile lines +dropped against the replay date) — the earlier asymmetry is what made an +observed-superset budget impossible. + +**Corpus v2** (frozen with its own seed and SHA manifest BEFORE the +matcher redesign was evaluated on it — same freeze discipline, and v1's +generator and manifest are untouched): 2240 pairs across the excluded +classes, including a third label, **indistinguishable** — the true row +misread by a letter-letter confusion, textually identical to a real +sibling. ABORT is the correct outcome for BOTH readings there: an abort +is a justified abort (never a false abort), a verify is a false accept +for the different-entity twin. + +**Measured, at the re-picked operating point** (full tables, occlusion +recount and the realistic-exposure analysis: IDENTITY_ROC.md): + +- false accepts: **0 across v1 (2200 wrong-entity pairs), v2 (1590 + wrong-entity + 200 indistinguishable), and the 13-probe set** — a + claim scoped to those corpora, NOT to the world; the operating point + is fit on the same corpora that produce the headline, and v1's own + zero was shown tautological one review ago. The regression net + (`tests/test_identity_corpus_rates.py`) asserts the zero on both + corpora. +- false aborts: v1 **21.2%** (up from 10.7% — the availability bill of + closing the four blockers, concentrated in occlusion 93%, compound + noise 38%, letter-letter confusion noise 33%, capitalized adjacent + bleed 26%), v2 legitimate-noise classes **0.0%**. +- indistinguishable class: **200/200 abort** (correct for both + readings). The same mechanism prices v1's letter-letter + `ocr_confusion` aborts: v1 labels them same-entity because its + generator KNOWS it applied noise; the matcher cannot know that, and + treating them as verifiable was exactly Blocker 1. +- occlusion recount: at the shipped decision, **102 of 216** occlusion + aborts still had both name tokens readable (the abort was trailing + DOB/MRN loss) — the earlier "identity tokens were never read" + framing was wrong and is corrected above and in LIMITS.md. +- realistic exposure: the Blocker-1 probes used IDENTICAL MRNs on + different patients (unrealistic — MRNs are unique). On realistic + NAME-collided pairs with differing readable DOB/MRN, the absence/ + contradiction budgets alone catch 180/180 even with the suspect rule + disabled; the TRUE residual-exposure shape is the band where the + name is the ONLY discriminative token (180/180 caught, but by the + suspect rule alone, which only covers collisions inside the frozen + confusion table). Remaining verify classes, disclosed in LIMITS.md: + 'Ann Marie'/'Annmarie' token-join equivalence, case/whitespace-only + name differences, 1-2 char letter-letter confusions (an 'I' vs 'L' + initial), and an ADDED (not replaced) 1-2 char token. + **CAVEAT ADDED BY THE SECOND REVIEW:** the "differing readable DOB/MRN + -> caught 180/180 without the suspect rule" claim held only because + those pairs differ in the NAME. It did NOT cover a pair differing only + in the IDENTITY value by a letter/DIGIT confusion — the 5th reopening + below — where the absence/contradiction budgets do NOT fire (the token + count and coverage are identical) and the pre-fix suspect rule was OFF + for digit-bearing tokens. See the next subsection. + +### Fix update (2026-07-10, SECOND review): the 5th wrong-patient reopening — identifier letter/digit collision + +The suspect budget above guarded NAME tokens only: ``_name_plausible`` +returns False for any token containing a digit, so the rule was OFF for +MRNs/account numbers — while the confusion canonicalization (l/1, O/0, +S/5, Z/2, B/8, g/9) still applied to them. A DIFFERENT patient's +alphanumeric identifier differing only by one letter/digit-confusable +character silently VERIFIED as same-entity: + +- ``Belford Jane MRN l482913 …`` vs ``… MRN 1482913 …`` -> verified; +- ``Chen Wei MRN O52133 …`` vs ``… 052133 …`` -> verified; +- ``Doe John MRN AO1234`` vs ``Doe John MRN A01234`` -> verified (two + same-name patients whose ONLY difference is one MRN char — the + canonical clinical case); fired in param mode too. All-DIGIT MRN + differences (748291 vs 748292) correctly mismatched — the hole was + precisely the letter/digit boundary. v1's ``mrn_digit_swap`` class + only ever swapped/changed DIGITS, so it never surfaced this. + +The five identifier probes are pinned in +``tests/test_identity_out_of_corpus.py`` (``TestBlocker5*``), committed +FAILING first. **The fix** (option A of the review, no corroboration +escape): the suspect rule now also fires on a confusion-only match where +the RECORDED token contains a digit — an identifier. Scoping on the +recorded token keeps name-with-digit-noise verifying ('Belford' is +all-alpha, so 'Be1ford' is clean OCR noise) while an identifier aborts. +Option B (allow if name+DOB raw-match) was rejected: two real patients +can share a name and DOB, so it would ALLOW exactly the Doe John +wrong-patient case. **Corpus v3** (300 pairs, own seed 20260712 and SHA +manifest, frozen before the fix) is the ``id_letter_digit_collision`` +class; the matcher scores **0/300** false accepts on it, and the full +ROC re-ran on v1+v2+v3 (IDENTITY_ROC.md). **Availability cost, honest:** +true-row identifier OCR noise now aborts too (indistinguishable at band +level from a different patient) — v2 ``digit_confusion_true_row`` rose +0% -> ~49%, v1 overall false aborts 21.2% -> 28.2%. Residual verify +classes gain one entry: a short (1-2 char) ALL-ALPHA code confused with +a digit (recorded token has no digit, under the 3-char name floor); +full-length identifiers are covered. + ## Outcome vocabulary - **pass** — the run succeeded and did what the demonstration did. @@ -548,9 +803,17 @@ that refusal branch never runs (docs/LIMITS.md states this in the dangerous list); (b) targets whose only discriminative text is their own label (parameterized typeahead suggestions), and bands under 12 squashed characters (too generic to discriminate), compile with no context band -and stay unverified; (c) names within OCR-jitter similarity (>= 0.7 +and stay unverified; (c) ~~names within OCR-jitter similarity (>= 0.7 whole-token ratio, e.g. "Jane"/"Janet") are indistinguishable from -misreads and verify; (d) typed-input read-back can false-abort on widgets +misreads and verify~~ — this gap was the mechanism of the THIRD +wrong-patient reopening and was FIXED 2026-07-10 (see that fix update: +near-name siblings now mismatch; only characteristic OCR char-class +confusions are treated as misreads — and after the FOURTH reopening +later that day, names equal only UNDER those confusion classes +(Neil/Nell) refuse too: when the only evidence is confusion +equivalence, the run aborts rather than verifies; the residual verify +classes are listed in docs/LIMITS.md "Known remaining"); +(d) typed-input read-back can false-abort on widgets that transform the value while typing (the native-date row in Track C), and the refocus re-click / select-all retry assumptions are disclosed in docs/LIMITS.md. diff --git a/docs/validation/adversary_corpus_manifest.json b/docs/validation/adversary_corpus_manifest.json new file mode 100644 index 0000000..e656edc --- /dev/null +++ b/docs/validation/adversary_corpus_manifest.json @@ -0,0 +1,30 @@ +{ + "seed": 20260710, + "n_total": 4360, + "sha256": "a2d3b4cda16da2dd4df3f3b3bfdfbc5fe0f9ec343370a1fc67a6a70e244d1b05", + "counts": { + "different_entity": { + "prefix_extension": 220, + "single_letter_edit": 220, + "transposition": 220, + "generational_suffix": 220, + "same_surname_diff_first": 220, + "same_first_diff_surname": 220, + "shared_clinical_text": 220, + "dob_off_by_one_field": 220, + "mrn_digit_swap": 220, + "adjacent_row_mixture": 220 + }, + "same_entity": { + "ocr_confusion": 240, + "token_split": 240, + "token_join": 240, + "dropped_short_tokens": 240, + "case_whitespace": 240, + "reordered_segments": 240, + "occlusion": 240, + "spurious_tokens": 240, + "compound_noise": 240 + } + } +} diff --git a/docs/validation/adversary_corpus_v2_manifest.json b/docs/validation/adversary_corpus_v2_manifest.json new file mode 100644 index 0000000..fd95058 --- /dev/null +++ b/docs/validation/adversary_corpus_v2_manifest.json @@ -0,0 +1,27 @@ +{ + "seed": 20260711, + "n_total": 2240, + "sha256": "d75e60ceb044d8cc75754b5b528bd3353f930e909b71c981464163db307160ed", + "counts": { + "different_entity": { + "confusion_collision_name_only": 180, + "confusion_collision_ids_differ": 180, + "confusion_collision_ids_same": 180, + "middle_initial": 150, + "sex_column": 150, + "two_char_name": 150, + "superset_appended_name": 150, + "superset_merged_row": 150, + "superset_title_mention": 150, + "absent_name_token": 150 + }, + "indistinguishable": { + "confusion_misread_true_row": 200 + }, + "same_entity": { + "digit_confusion_true_row": 150, + "adjacent_bleed_lowercase": 150, + "hyphenated_split": 150 + } + } +} diff --git a/docs/validation/adversary_corpus_v3_manifest.json b/docs/validation/adversary_corpus_v3_manifest.json new file mode 100644 index 0000000..c5ed055 --- /dev/null +++ b/docs/validation/adversary_corpus_v3_manifest.json @@ -0,0 +1,10 @@ +{ + "seed": 20260712, + "n_total": 300, + "sha256": "c61c282664ca170559f3c4891f890796a7156dcd7dbe84d4fe3c00663a993828", + "counts": { + "different_entity": { + "id_letter_digit_collision": 300 + } + } +} diff --git a/docs/validation/identity_roc.json b/docs/validation/identity_roc.json new file mode 100644 index 0000000..36ce430 --- /dev/null +++ b/docs/validation/identity_roc.json @@ -0,0 +1,24311 @@ +{ + "operating_point": { + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3 + }, + "corpus_rates_at_operating_point": { + "v1": { + "fa": 0.0, + "fabort": 0.2824074074074074, + "justified": 0.0 + }, + "v2": { + "fa": 0.0, + "fabort": 0.1622222222222222, + "justified": 1.0 + }, + "v3": { + "fa": 0.0, + "fabort": 0.0, + "justified": 0.0 + } + }, + "points": [ + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03426573426573427, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0703962703962704, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13916083916083916, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23473193473193474, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.27086247086247084, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3396270396270396, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16923076923076924, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20536130536130537, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.27412587412587414, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3797202797202797, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.41585081585081585, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4846153846153846, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.17622377622377622, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.26153846153846155, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3303030303030303, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3883449883449883, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48205128205128206, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5508158508158508, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03426573426573427, + "false_abort": 0.2482758620689655, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0703962703962704, + "false_abort": 0.2222222222222222, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13916083916083916, + "false_abort": 0.2206896551724138, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23473193473193474, + "false_abort": 0.10881226053639846, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.27086247086247084, + "false_abort": 0.07969348659003832, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3396270396270396, + "false_abort": 0.07816091954022988, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16923076923076924, + "false_abort": 0.2482758620689655, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20536130536130537, + "false_abort": 0.2222222222222222, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.27412587412587414, + "false_abort": 0.2206896551724138, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3797202797202797, + "false_abort": 0.10881226053639846, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.41585081585081585, + "false_abort": 0.07969348659003832, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4846153846153846, + "false_abort": 0.07816091954022988, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26091954022988506, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1825174825174825, + "false_abort": 0.2478927203065134, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3508158508158508, + "false_abort": 0.221455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23333333333333334, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4195804195804196, + "false_abort": 0.21992337164750958, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12145593869731801, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.39836829836829835, + "false_abort": 0.10842911877394636, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09233716475095785, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5948717948717949, + "false_abort": 0.07816091954022988, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09080459770114943, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6636363636363637, + "false_abort": 0.07662835249042145, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03426573426573427, + "false_abort": 0.23601532567049807, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0703962703962704, + "false_abort": 0.2099616858237548, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13916083916083916, + "false_abort": 0.20842911877394635, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23473193473193474, + "false_abort": 0.09655172413793103, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.27086247086247084, + "false_abort": 0.06743295019157088, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3396270396270396, + "false_abort": 0.06590038314176246, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16923076923076924, + "false_abort": 0.23601532567049807, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20536130536130537, + "false_abort": 0.2099616858237548, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.27412587412587414, + "false_abort": 0.20842911877394635, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3797202797202797, + "false_abort": 0.09655172413793103, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.41585081585081585, + "false_abort": 0.06743295019157088, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4846153846153846, + "false_abort": 0.06590038314176246, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.16037296037296037, + "false_abort": 0.257088122605364, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20536130536130537, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.20955710955710954, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4230769230769231, + "false_abort": 0.20727969348659003, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2783216783216783, + "false_abort": 0.22950191570881226, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4944055944055944, + "false_abort": 0.2053639846743295, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.3776223776223776, + "false_abort": 0.11762452107279693, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.42703962703962706, + "false_abort": 0.09425287356321839, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4282051282051282, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6857808857808858, + "false_abort": 0.06360153256704981, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.49696969696969695, + "false_abort": 0.08697318007662835, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7571095571095571, + "false_abort": 0.061685823754789273, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03426573426573427, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0703962703962704, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13916083916083916, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23473193473193474, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.27086247086247084, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3396270396270396, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16923076923076924, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20536130536130537, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.27412587412587414, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3797202797202797, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.41585081585081585, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4846153846153846, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.17622377622377622, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.26153846153846155, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3303030303030303, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3883449883449883, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48205128205128206, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5508158508158508, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03426573426573427, + "false_abort": 0.24865900383141762, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0703962703962704, + "false_abort": 0.22260536398467434, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13916083916083916, + "false_abort": 0.2210727969348659, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23473193473193474, + "false_abort": 0.10919540229885058, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.27086247086247084, + "false_abort": 0.08007662835249042, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3396270396270396, + "false_abort": 0.07854406130268199, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16923076923076924, + "false_abort": 0.24865900383141762, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20536130536130537, + "false_abort": 0.22260536398467434, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.27412587412587414, + "false_abort": 0.2210727969348659, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3797202797202797, + "false_abort": 0.10919540229885058, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.41585081585081585, + "false_abort": 0.08007662835249042, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4846153846153846, + "false_abort": 0.07854406130268199, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26091954022988506, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1825174825174825, + "false_abort": 0.2482758620689655, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3475524475524476, + "false_abort": 0.2218390804597701, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23333333333333334, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.41631701631701634, + "false_abort": 0.22030651340996169, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12145593869731801, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.39813519813519815, + "false_abort": 0.10881226053639846, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09233716475095785, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.58997668997669, + "false_abort": 0.07854406130268199, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09080459770114943, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6587412587412588, + "false_abort": 0.07701149425287357, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03426573426573427, + "false_abort": 0.23716475095785441, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0703962703962704, + "false_abort": 0.2111111111111111, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13916083916083916, + "false_abort": 0.2095785440613027, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23473193473193474, + "false_abort": 0.09770114942528736, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.27086247086247084, + "false_abort": 0.0685823754789272, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3396270396270396, + "false_abort": 0.06704980842911877, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16923076923076924, + "false_abort": 0.23716475095785441, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20536130536130537, + "false_abort": 0.2111111111111111, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.27412587412587414, + "false_abort": 0.2095785440613027, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3797202797202797, + "false_abort": 0.09770114942528736, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.41585081585081585, + "false_abort": 0.0685823754789272, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4846153846153846, + "false_abort": 0.06704980842911877, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.16037296037296037, + "false_abort": 0.257088122605364, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20536130536130537, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.20955710955710954, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.41235431235431236, + "false_abort": 0.20842911877394635, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2783216783216783, + "false_abort": 0.22950191570881226, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4836829836829837, + "false_abort": 0.20651340996168582, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.3776223776223776, + "false_abort": 0.11762452107279693, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4263403263403263, + "false_abort": 0.09540229885057472, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4282051282051282, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6715617715617715, + "false_abort": 0.06475095785440613, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.49696969696969695, + "false_abort": 0.08697318007662835, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7428904428904429, + "false_abort": 0.06283524904214559, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03263403263403263, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.06876456876456877, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13752913752913754, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2331002331002331, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2692307692307692, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.337995337995338, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1675990675990676, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20372960372960372, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2724941724941725, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3780885780885781, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4142191142191142, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.482983682983683, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1745920745920746, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2596736596736597, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.32843822843822845, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3867132867132867, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4801864801864802, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.548951048951049, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03263403263403263, + "false_abort": 0.24942528735632183, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.06876456876456877, + "false_abort": 0.22337164750957855, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13752913752913754, + "false_abort": 0.2218390804597701, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2331002331002331, + "false_abort": 0.10996168582375479, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2692307692307692, + "false_abort": 0.08084291187739463, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.337995337995338, + "false_abort": 0.07931034482758621, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1675990675990676, + "false_abort": 0.24942528735632183, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20372960372960372, + "false_abort": 0.22337164750957855, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2724941724941725, + "false_abort": 0.2218390804597701, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3780885780885781, + "false_abort": 0.10996168582375479, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4142191142191142, + "false_abort": 0.08084291187739463, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.482983682983683, + "false_abort": 0.07931034482758621, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26091954022988506, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.17995337995337995, + "false_abort": 0.24904214559386972, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33473193473193474, + "false_abort": 0.22260536398467434, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23333333333333334, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4034965034965035, + "false_abort": 0.2210727969348659, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12145593869731801, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.39533799533799535, + "false_abort": 0.10957854406130269, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09233716475095785, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5738927738927739, + "false_abort": 0.07931034482758621, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09080459770114943, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6426573426573426, + "false_abort": 0.07777777777777778, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26091954022988506, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03263403263403263, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.06876456876456877, + "false_abort": 0.2164750957854406, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23333333333333334, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13752913752913754, + "false_abort": 0.2149425287356322, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12145593869731801, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2331002331002331, + "false_abort": 0.10306513409961686, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09233716475095785, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2692307692307692, + "false_abort": 0.0739463601532567, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09080459770114943, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.337995337995338, + "false_abort": 0.07241379310344828, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26091954022988506, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1675990675990676, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20372960372960372, + "false_abort": 0.2164750957854406, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23333333333333334, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2724941724941725, + "false_abort": 0.2149425287356322, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12145593869731801, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3780885780885781, + "false_abort": 0.10306513409961686, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09233716475095785, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4142191142191142, + "false_abort": 0.0739463601532567, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09080459770114943, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.482983682983683, + "false_abort": 0.07241379310344828, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.14755244755244756, + "false_abort": 0.26015325670498085, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.18951048951048952, + "false_abort": 0.24061302681992336, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.19673659673659674, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3731934731934732, + "false_abort": 0.21417624521072798, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2655011655011655, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4445221445221445, + "false_abort": 0.21264367816091953, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.362004662004662, + "false_abort": 0.1206896551724138, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.40722610722610725, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4125874125874126, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6233100233100233, + "false_abort": 0.07049808429118774, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.4813519813519814, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6946386946386947, + "false_abort": 0.06896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.14125874125874127, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.21958041958041957, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.28834498834498834, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.35337995337995337, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.43916083916083914, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.507925407925408, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2517241379310345, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.22567049808429118, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.22413793103448276, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.11226053639846743, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.08314176245210728, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.08160919540229886, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2517241379310345, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.22567049808429118, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.22413793103448276, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.11226053639846743, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.08314176245210728, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.08160919540229886, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26091954022988506, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.14382284382284383, + "false_abort": 0.25134099616858235, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.26713286713286716, + "false_abort": 0.22490421455938697, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23333333333333334, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33589743589743587, + "false_abort": 0.22337164750957855, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12145593869731801, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3575757575757576, + "false_abort": 0.11187739463601533, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09233716475095785, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4965034965034965, + "false_abort": 0.08237547892720307, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09080459770114943, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5652680652680653, + "false_abort": 0.08084291187739463, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.24559386973180078, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.21954022988505748, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.21800766283524906, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.10613026819923371, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.07701149425287357, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.07547892720306514, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.24559386973180078, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.21954022988505748, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.21800766283524906, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.10613026819923371, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.07701149425287357, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.07547892720306514, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.1407925407925408, + "false_abort": 0.26053639846743293, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.14615384615384616, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18997668997668998, + "false_abort": 0.23448275862068965, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.28997668997668996, + "false_abort": 0.21762452107279692, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.25874125874125875, + "false_abort": 0.23295019157088123, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.36013986013986016, + "false_abort": 0.2160919540229885, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.3531468531468531, + "false_abort": 0.1210727969348659, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.36013986013986016, + "false_abort": 0.10459770114942529, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4037296037296037, + "false_abort": 0.09195402298850575, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5247086247086247, + "false_abort": 0.07509578544061303, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47249417249417247, + "false_abort": 0.09042145593869731, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5948717948717949, + "false_abort": 0.0735632183908046, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.12867132867132866, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.12867132867132866, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1648018648018648, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1648018648018648, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23356643356643356, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23356643356643356, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.33916083916083917, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33916083916083917, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3752913752913753, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3752913752913753, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.44405594405594406, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.44405594405594406, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.12867132867132866, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.12867132867132866, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1696969696969697, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1696969696969697, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23846153846153847, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23846153846153847, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.33916083916083917, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33916083916083917, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3804195804195804, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3804195804195804, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.4491841491841492, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4491841491841492, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2704980842911877, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2704980842911877, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24444444444444444, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.24444444444444444, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.24291187739463602, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.24291187739463602, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.1310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.1310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10191570881226053, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.10191570881226053, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.10038314176245211, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.10038314176245211, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.12867132867132866, + "false_abort": 0.2704980842911877, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.12867132867132866, + "false_abort": 0.2704980842911877, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1648018648018648, + "false_abort": 0.24444444444444444, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1648018648018648, + "false_abort": 0.24444444444444444, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23356643356643356, + "false_abort": 0.24291187739463602, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23356643356643356, + "false_abort": 0.24291187739463602, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.33916083916083917, + "false_abort": 0.1310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33916083916083917, + "false_abort": 0.1310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3752913752913753, + "false_abort": 0.10191570881226053, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3752913752913753, + "false_abort": 0.10191570881226053, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.44405594405594406, + "false_abort": 0.10038314176245211, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.44405594405594406, + "false_abort": 0.10038314176245211, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13216783216783218, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13216783216783218, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.17995337995337995, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.17995337995337995, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24871794871794872, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.24871794871794872, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34382284382284384, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34382284382284384, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.39254079254079255, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.39254079254079255, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.4613053613053613, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4613053613053613, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2704980842911877, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24444444444444444, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.24291187739463602, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.24061302681992336, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.1310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.12873563218390804, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10191570881226053, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.10038314176245211, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.09808429118773947, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.12867132867132866, + "false_abort": 0.2704980842911877, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.12867132867132866, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1648018648018648, + "false_abort": 0.24444444444444444, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1648018648018648, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23356643356643356, + "false_abort": 0.24291187739463602, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23356643356643356, + "false_abort": 0.24061302681992336, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.33916083916083917, + "false_abort": 0.1310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33916083916083917, + "false_abort": 0.12873563218390804, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3752913752913753, + "false_abort": 0.10191570881226053, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3752913752913753, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.44405594405594406, + "false_abort": 0.10038314176245211, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.44405594405594406, + "false_abort": 0.09808429118773947, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13216783216783218, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13286713286713286, + "false_abort": 0.267816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.17995337995337995, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.19766899766899768, + "false_abort": 0.2417624521072797, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24871794871794872, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2664335664335664, + "false_abort": 0.24022988505747125, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34382284382284384, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3445221445221445, + "false_abort": 0.12835249042145594, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.39254079254079255, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4132867132867133, + "false_abort": 0.09923371647509578, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.4613053613053613, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48205128205128206, + "false_abort": 0.09770114942528736, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.26436781609195403, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.23831417624521073, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.12490421455938697, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.09578544061302682, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.09425287356321839, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.12867132867132866, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.12867132867132866, + "false_abort": 0.26436781609195403, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1648018648018648, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1648018648018648, + "false_abort": 0.23831417624521073, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23356643356643356, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23356643356643356, + "false_abort": 0.2367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.33916083916083917, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33916083916083917, + "false_abort": 0.12490421455938697, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3752913752913753, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3752913752913753, + "false_abort": 0.09578544061302682, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.44405594405594406, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.44405594405594406, + "false_abort": 0.09425287356321839, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13216783216783218, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13473193473193473, + "false_abort": 0.2639846743295019, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.17995337995337995, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23193473193473194, + "false_abort": 0.23793103448275862, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24871794871794872, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3006993006993007, + "false_abort": 0.2363984674329502, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34382284382284384, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3470862470862471, + "false_abort": 0.12452107279693486, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.39254079254079255, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45314685314685316, + "false_abort": 0.09540229885057472, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.4613053613053613, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5219114219114219, + "false_abort": 0.09386973180076628, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2639846743295019, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.23793103448275862, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2363984674329502, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.12452107279693486, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.09540229885057472, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.09386973180076628, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.12867132867132866, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.12867132867132866, + "false_abort": 0.2639846743295019, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1648018648018648, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1648018648018648, + "false_abort": 0.23793103448275862, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23356643356643356, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23356643356643356, + "false_abort": 0.2363984674329502, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.33916083916083917, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33916083916083917, + "false_abort": 0.12452107279693486, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3752913752913753, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3752913752913753, + "false_abort": 0.09540229885057472, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.44405594405594406, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.44405594405594406, + "false_abort": 0.09386973180076628, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13216783216783218, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13473193473193473, + "false_abort": 0.2636015325670498, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.17995337995337995, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2331002331002331, + "false_abort": 0.23754789272030652, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24871794871794872, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30186480186480186, + "false_abort": 0.23601532567049807, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34382284382284384, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3470862470862471, + "false_abort": 0.12413793103448276, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.39254079254079255, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45454545454545453, + "false_abort": 0.0950191570881226, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.4613053613053613, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5233100233100233, + "false_abort": 0.09348659003831418, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0344988344988345, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.07062937062937064, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1393939393939394, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23496503496503496, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2710955710955711, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33986013986013985, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16946386946386946, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2055944055944056, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2743589743589744, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.37995337995337997, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4160839160839161, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48484848484848486, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.17622377622377622, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.26153846153846155, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3303030303030303, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3883449883449883, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48205128205128206, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5508158508158508, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0344988344988345, + "false_abort": 0.2482758620689655, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.07062937062937064, + "false_abort": 0.2222222222222222, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1393939393939394, + "false_abort": 0.2206896551724138, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23496503496503496, + "false_abort": 0.10881226053639846, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2710955710955711, + "false_abort": 0.07969348659003832, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33986013986013985, + "false_abort": 0.07816091954022988, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16946386946386946, + "false_abort": 0.2482758620689655, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2055944055944056, + "false_abort": 0.2222222222222222, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2743589743589744, + "false_abort": 0.2206896551724138, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.37995337995337997, + "false_abort": 0.10881226053639846, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4160839160839161, + "false_abort": 0.07969348659003832, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48484848484848486, + "false_abort": 0.07816091954022988, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26091954022988506, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1825174825174825, + "false_abort": 0.2478927203065134, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3508158508158508, + "false_abort": 0.221455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23333333333333334, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4195804195804196, + "false_abort": 0.21992337164750958, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12145593869731801, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.39836829836829835, + "false_abort": 0.10842911877394636, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09233716475095785, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5948717948717949, + "false_abort": 0.07816091954022988, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09080459770114943, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6636363636363637, + "false_abort": 0.07662835249042145, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0344988344988345, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.07062937062937064, + "false_abort": 0.20919540229885059, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1393939393939394, + "false_abort": 0.20766283524904214, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23496503496503496, + "false_abort": 0.09578544061302682, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2710955710955711, + "false_abort": 0.06666666666666667, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33986013986013985, + "false_abort": 0.06513409961685823, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16946386946386946, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2055944055944056, + "false_abort": 0.20919540229885059, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2743589743589744, + "false_abort": 0.20766283524904214, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.37995337995337997, + "false_abort": 0.09578544061302682, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4160839160839161, + "false_abort": 0.06666666666666667, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48484848484848486, + "false_abort": 0.06513409961685823, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.16037296037296037, + "false_abort": 0.257088122605364, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20536130536130537, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.20955710955710954, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4230769230769231, + "false_abort": 0.20727969348659003, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2783216783216783, + "false_abort": 0.22950191570881226, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4944055944055944, + "false_abort": 0.2053639846743295, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.3776223776223776, + "false_abort": 0.11762452107279693, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.42703962703962706, + "false_abort": 0.09425287356321839, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4282051282051282, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6857808857808858, + "false_abort": 0.06360153256704981, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.49696969696969695, + "false_abort": 0.08697318007662835, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7571095571095571, + "false_abort": 0.061685823754789273, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0344988344988345, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.07062937062937064, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1393939393939394, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23496503496503496, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2710955710955711, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33986013986013985, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16946386946386946, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2055944055944056, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2743589743589744, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.37995337995337997, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4160839160839161, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48484848484848486, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.17622377622377622, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.26153846153846155, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3303030303030303, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3883449883449883, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48205128205128206, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5508158508158508, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0344988344988345, + "false_abort": 0.24865900383141762, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.07062937062937064, + "false_abort": 0.22260536398467434, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1393939393939394, + "false_abort": 0.2210727969348659, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23496503496503496, + "false_abort": 0.10919540229885058, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2710955710955711, + "false_abort": 0.08007662835249042, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33986013986013985, + "false_abort": 0.07854406130268199, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16946386946386946, + "false_abort": 0.24865900383141762, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2055944055944056, + "false_abort": 0.22260536398467434, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2743589743589744, + "false_abort": 0.2210727969348659, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.37995337995337997, + "false_abort": 0.10919540229885058, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4160839160839161, + "false_abort": 0.08007662835249042, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48484848484848486, + "false_abort": 0.07854406130268199, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26091954022988506, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1825174825174825, + "false_abort": 0.2482758620689655, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3475524475524476, + "false_abort": 0.2218390804597701, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23333333333333334, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.41631701631701634, + "false_abort": 0.22030651340996169, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12145593869731801, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.39813519813519815, + "false_abort": 0.10881226053639846, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09233716475095785, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.58997668997669, + "false_abort": 0.07854406130268199, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09080459770114943, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6587412587412588, + "false_abort": 0.07701149425287357, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0344988344988345, + "false_abort": 0.2363984674329502, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.07062937062937064, + "false_abort": 0.2103448275862069, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1393939393939394, + "false_abort": 0.20881226053639848, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23496503496503496, + "false_abort": 0.09693486590038314, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2710955710955711, + "false_abort": 0.067816091954023, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33986013986013985, + "false_abort": 0.06628352490421456, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16946386946386946, + "false_abort": 0.2363984674329502, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2055944055944056, + "false_abort": 0.2103448275862069, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2743589743589744, + "false_abort": 0.20881226053639848, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.37995337995337997, + "false_abort": 0.09693486590038314, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4160839160839161, + "false_abort": 0.067816091954023, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48484848484848486, + "false_abort": 0.06628352490421456, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.16037296037296037, + "false_abort": 0.257088122605364, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20536130536130537, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.20955710955710954, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.41235431235431236, + "false_abort": 0.20842911877394635, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2783216783216783, + "false_abort": 0.22950191570881226, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4836829836829837, + "false_abort": 0.20651340996168582, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.3776223776223776, + "false_abort": 0.11762452107279693, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4263403263403263, + "false_abort": 0.09540229885057472, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4282051282051282, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6715617715617715, + "false_abort": 0.06475095785440613, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.49696969696969695, + "false_abort": 0.08697318007662835, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7428904428904429, + "false_abort": 0.06283524904214559, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.032867132867132866, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.068997668997669, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13776223776223775, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23333333333333334, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.26946386946386947, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33822843822843823, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16783216783216784, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20396270396270397, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2727272727272727, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.37832167832167835, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4144522144522145, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48321678321678324, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1745920745920746, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2596736596736597, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.32843822843822845, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3867132867132867, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4801864801864802, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.548951048951049, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.032867132867132866, + "false_abort": 0.24942528735632183, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.068997668997669, + "false_abort": 0.22337164750957855, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13776223776223775, + "false_abort": 0.2218390804597701, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23333333333333334, + "false_abort": 0.10996168582375479, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.26946386946386947, + "false_abort": 0.08084291187739463, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33822843822843823, + "false_abort": 0.07931034482758621, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16783216783216784, + "false_abort": 0.24942528735632183, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20396270396270397, + "false_abort": 0.22337164750957855, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2727272727272727, + "false_abort": 0.2218390804597701, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.37832167832167835, + "false_abort": 0.10996168582375479, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4144522144522145, + "false_abort": 0.08084291187739463, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48321678321678324, + "false_abort": 0.07931034482758621, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26091954022988506, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.17995337995337995, + "false_abort": 0.24904214559386972, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33473193473193474, + "false_abort": 0.22260536398467434, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23333333333333334, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4034965034965035, + "false_abort": 0.2210727969348659, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12145593869731801, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.39533799533799535, + "false_abort": 0.10957854406130269, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09233716475095785, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5738927738927739, + "false_abort": 0.07931034482758621, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09080459770114943, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6426573426573426, + "false_abort": 0.07777777777777778, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26091954022988506, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.032867132867132866, + "false_abort": 0.2417624521072797, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.068997668997669, + "false_abort": 0.2157088122605364, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23333333333333334, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13776223776223775, + "false_abort": 0.21417624521072798, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12145593869731801, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23333333333333334, + "false_abort": 0.10229885057471265, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09233716475095785, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.26946386946386947, + "false_abort": 0.07318007662835249, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09080459770114943, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33822843822843823, + "false_abort": 0.07164750957854406, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26091954022988506, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.16783216783216784, + "false_abort": 0.2417624521072797, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20396270396270397, + "false_abort": 0.2157088122605364, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23333333333333334, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2727272727272727, + "false_abort": 0.21417624521072798, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12145593869731801, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.37832167832167835, + "false_abort": 0.10229885057471265, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09233716475095785, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4144522144522145, + "false_abort": 0.07318007662835249, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09080459770114943, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48321678321678324, + "false_abort": 0.07164750957854406, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.14755244755244756, + "false_abort": 0.26015325670498085, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.18951048951048952, + "false_abort": 0.24061302681992336, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.19673659673659674, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3731934731934732, + "false_abort": 0.21417624521072798, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2655011655011655, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4445221445221445, + "false_abort": 0.21264367816091953, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.362004662004662, + "false_abort": 0.1206896551724138, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.40722610722610725, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4125874125874126, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6233100233100233, + "false_abort": 0.07049808429118774, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.4813519813519814, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6946386946386947, + "false_abort": 0.06896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.175990675990676, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.24475524475524477, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3867132867132867, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45547785547785546, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13986013986013987, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.18904428904428905, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2578088578088578, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.351981351981352, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4025641025641026, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.47132867132867134, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26168582375478927, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.25862068965517243, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23563218390804597, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.23256704980842913, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23409961685823755, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.23103448275862068, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12222222222222222, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.11915708812260536, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.09003831417624521, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09157088122605364, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.08850574712643679, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.14125874125874127, + "false_abort": 0.2582375478927203, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.21958041958041957, + "false_abort": 0.23218390804597702, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.28834498834498834, + "false_abort": 0.23065134099616857, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.35337995337995337, + "false_abort": 0.11877394636015326, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.43916083916083914, + "false_abort": 0.0896551724137931, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.507925407925408, + "false_abort": 0.08812260536398467, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2517241379310345, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.22567049808429118, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.22413793103448276, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.11226053639846743, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.08314176245210728, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.08160919540229886, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.2517241379310345, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.22567049808429118, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.22413793103448276, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.11226053639846743, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.08314176245210728, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.08160919540229886, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13986013986013987, + "false_abort": 0.26091954022988506, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.14382284382284383, + "false_abort": 0.25134099616858235, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18904428904428905, + "false_abort": 0.23486590038314176, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.26713286713286716, + "false_abort": 0.22490421455938697, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.2578088578088578, + "false_abort": 0.23333333333333334, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33589743589743587, + "false_abort": 0.22337164750957855, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.351981351981352, + "false_abort": 0.12145593869731801, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3575757575757576, + "false_abort": 0.11187739463601533, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4025641025641026, + "false_abort": 0.09233716475095785, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4965034965034965, + "false_abort": 0.08237547892720307, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47132867132867134, + "false_abort": 0.09080459770114943, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5652680652680653, + "false_abort": 0.08084291187739463, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.24482758620689654, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.21877394636015327, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.21724137931034482, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.1053639846743295, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.07624521072796935, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.07471264367816093, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13496503496503495, + "false_abort": 0.26130268199233714, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13496503496503495, + "false_abort": 0.24482758620689654, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1710955710955711, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1710955710955711, + "false_abort": 0.21877394636015327, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23986013986013985, + "false_abort": 0.23371647509578544, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23986013986013985, + "false_abort": 0.21724137931034482, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34545454545454546, + "false_abort": 0.12183908045977011, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34545454545454546, + "false_abort": 0.1053639846743295, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3815850815850816, + "false_abort": 0.09272030651340996, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3815850815850816, + "false_abort": 0.07624521072796935, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.45034965034965035, + "false_abort": 0.09118773946360154, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45034965034965035, + "false_abort": 0.07471264367816093, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.1407925407925408, + "false_abort": 0.26053639846743293, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.14615384615384616, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.18997668997668998, + "false_abort": 0.23448275862068965, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.28997668997668996, + "false_abort": 0.21762452107279692, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.25874125874125875, + "false_abort": 0.23295019157088123, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.36013986013986016, + "false_abort": 0.2160919540229885, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.3531468531468531, + "false_abort": 0.1210727969348659, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.36013986013986016, + "false_abort": 0.10459770114942529, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.4037296037296037, + "false_abort": 0.09195402298850575, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5247086247086247, + "false_abort": 0.07509578544061303, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.47249417249417247, + "false_abort": 0.09042145593869731, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5948717948717949, + "false_abort": 0.0735632183908046, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.12867132867132866, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.12867132867132866, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1648018648018648, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1648018648018648, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23356643356643356, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23356643356643356, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.33916083916083917, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33916083916083917, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3752913752913753, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3752913752913753, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.44405594405594406, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.44405594405594406, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.12867132867132866, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.12867132867132866, + "false_abort": 0.2957854406130268, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1696969696969697, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1696969696969697, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23846153846153847, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23846153846153847, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.33916083916083917, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33916083916083917, + "false_abort": 0.15632183908045977, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3804195804195804, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3804195804195804, + "false_abort": 0.12720306513409962, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.4491841491841492, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4491841491841492, + "false_abort": 0.12567049808429118, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2704980842911877, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2704980842911877, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24444444444444444, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.24444444444444444, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.24291187739463602, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.24291187739463602, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.1310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.1310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10191570881226053, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.10191570881226053, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.10038314176245211, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.10038314176245211, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.12867132867132866, + "false_abort": 0.2704980842911877, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.12867132867132866, + "false_abort": 0.2704980842911877, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1648018648018648, + "false_abort": 0.24444444444444444, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1648018648018648, + "false_abort": 0.24444444444444444, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23356643356643356, + "false_abort": 0.24291187739463602, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23356643356643356, + "false_abort": 0.24291187739463602, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.33916083916083917, + "false_abort": 0.1310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33916083916083917, + "false_abort": 0.1310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3752913752913753, + "false_abort": 0.10191570881226053, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3752913752913753, + "false_abort": 0.10191570881226053, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.44405594405594406, + "false_abort": 0.10038314176245211, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.44405594405594406, + "false_abort": 0.10038314176245211, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13216783216783218, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13216783216783218, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.17995337995337995, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.17995337995337995, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24871794871794872, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.24871794871794872, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34382284382284384, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.34382284382284384, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.39254079254079255, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.39254079254079255, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.4613053613053613, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4613053613053613, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.2704980842911877, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24444444444444444, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.24291187739463602, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.24061302681992336, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.1310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.12873563218390804, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10191570881226053, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.10038314176245211, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.09808429118773947, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.12867132867132866, + "false_abort": 0.2704980842911877, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.12867132867132866, + "false_abort": 0.2681992337164751, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1648018648018648, + "false_abort": 0.24444444444444444, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1648018648018648, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23356643356643356, + "false_abort": 0.24291187739463602, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23356643356643356, + "false_abort": 0.24061302681992336, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.33916083916083917, + "false_abort": 0.1310344827586207, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33916083916083917, + "false_abort": 0.12873563218390804, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3752913752913753, + "false_abort": 0.10191570881226053, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3752913752913753, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.44405594405594406, + "false_abort": 0.10038314176245211, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.44405594405594406, + "false_abort": 0.09808429118773947, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13216783216783218, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13286713286713286, + "false_abort": 0.267816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.17995337995337995, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.19766899766899768, + "false_abort": 0.2417624521072797, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24871794871794872, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2664335664335664, + "false_abort": 0.24022988505747125, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34382284382284384, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3445221445221445, + "false_abort": 0.12835249042145594, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.39254079254079255, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.4132867132867133, + "false_abort": 0.09923371647509578, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.4613053613053613, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.48205128205128206, + "false_abort": 0.09770114942528736, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.26436781609195403, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.23831417624521073, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.12490421455938697, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.09578544061302682, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.09425287356321839, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.12867132867132866, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.12867132867132866, + "false_abort": 0.26436781609195403, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1648018648018648, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1648018648018648, + "false_abort": 0.23831417624521073, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23356643356643356, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23356643356643356, + "false_abort": 0.2367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.33916083916083917, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33916083916083917, + "false_abort": 0.12490421455938697, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3752913752913753, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3752913752913753, + "false_abort": 0.09578544061302682, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.44405594405594406, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.44405594405594406, + "false_abort": 0.09425287356321839, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13216783216783218, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13473193473193473, + "false_abort": 0.2639846743295019, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.17995337995337995, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23193473193473194, + "false_abort": 0.23793103448275862, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24871794871794872, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3006993006993007, + "false_abort": 0.2363984674329502, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34382284382284384, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3470862470862471, + "false_abort": 0.12452107279693486, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.39254079254079255, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45314685314685316, + "false_abort": 0.09540229885057472, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.4613053613053613, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5219114219114219, + "false_abort": 0.09386973180076628, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.0, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.2639846743295019, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.03613053613053613, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.23793103448275862, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.1048951048951049, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1048951048951049, + "false_abort": 0.2363984674329502, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.20046620046620048, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.12452107279693486, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.2365967365967366, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.09540229885057472, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.30536130536130535, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30536130536130535, + "false_abort": 0.09386973180076628, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.12867132867132866, + "false_abort": 0.27011494252873564, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.12867132867132866, + "false_abort": 0.2639846743295019, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.1648018648018648, + "false_abort": 0.24406130268199233, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1648018648018648, + "false_abort": 0.23793103448275862, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.23356643356643356, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23356643356643356, + "false_abort": 0.2363984674329502, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.33916083916083917, + "false_abort": 0.13065134099616857, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33916083916083917, + "false_abort": 0.12452107279693486, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.3752913752913753, + "false_abort": 0.10153256704980843, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3752913752913753, + "false_abort": 0.09540229885057472, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.44405594405594406, + "false_abort": 0.1, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 2, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.44405594405594406, + "false_abort": 0.09386973180076628, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.13216783216783218, + "false_abort": 0.2697318007662835, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13473193473193473, + "false_abort": 0.2636015325670498, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.17995337995337995, + "false_abort": 0.24367816091954023, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2331002331002331, + "false_abort": 0.23754789272030652, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.24871794871794872, + "false_abort": 0.2421455938697318, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.30186480186480186, + "false_abort": 0.23601532567049807, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 3, + "false_accept": 0.34382284382284384, + "false_abort": 0.13026819923371646, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3470862470862471, + "false_abort": 0.12413793103448276, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 3, + "false_accept": 0.39254079254079255, + "false_abort": 0.10114942528735632, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.45454545454545453, + "false_abort": 0.0950191570881226, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 3, + "false_accept": 0.4613053613053613, + "false_abort": 0.09961685823754789, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.5233100233100233, + "false_abort": 0.09348659003831418, + "justified_abort": 0.0 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.7, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6384615384615384, + "false_abort": 0.14904214559386972, + "justified_abort": 0.205 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.7, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6505827505827506, + "false_abort": 0.11915708812260536, + "justified_abort": 0.195 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.7, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7128205128205128, + "false_abort": 0.10076628352490422, + "justified_abort": 0.095 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.7, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7757575757575758, + "false_abort": 0.0839080459770115, + "justified_abort": 0.0 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.8251748251748252, + "false_abort": 0.06628352490421456, + "justified_abort": 0.0 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.75, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6384615384615384, + "false_abort": 0.14904214559386972, + "justified_abort": 0.205 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.75, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6505827505827506, + "false_abort": 0.11915708812260536, + "justified_abort": 0.195 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.75, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7128205128205128, + "false_abort": 0.10076628352490422, + "justified_abort": 0.095 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.75, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7731934731934732, + "false_abort": 0.08544061302681992, + "justified_abort": 0.0 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.8151515151515152, + "false_abort": 0.06973180076628352, + "justified_abort": 0.0 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.8, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6384615384615384, + "false_abort": 0.14904214559386972, + "justified_abort": 0.205 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.8, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6505827505827506, + "false_abort": 0.11915708812260536, + "justified_abort": 0.195 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.8, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.710955710955711, + "false_abort": 0.10076628352490422, + "justified_abort": 0.095 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.8, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7631701631701632, + "false_abort": 0.08697318007662835, + "justified_abort": 0.025 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7909090909090909, + "false_abort": 0.07662835249042145, + "justified_abort": 0.025 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.85, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6384615384615384, + "false_abort": 0.14904214559386972, + "justified_abort": 0.205 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.85, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6505827505827506, + "false_abort": 0.11954022988505747, + "justified_abort": 0.195 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.85, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6738927738927739, + "false_abort": 0.10153256704980843, + "justified_abort": 0.12 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.85, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7034965034965035, + "false_abort": 0.09348659003831418, + "justified_abort": 0.07 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.720979020979021, + "false_abort": 0.08582375478927202, + "justified_abort": 0.07 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.9, + "uncovered_run_cap": 2, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6321678321678321, + "false_abort": 0.14904214559386972, + "justified_abort": 0.205 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.9, + "uncovered_run_cap": 3, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.641958041958042, + "false_abort": 0.11992337164750957, + "justified_abort": 0.195 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.9, + "uncovered_run_cap": 4, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6585081585081585, + "false_abort": 0.11187739463601533, + "justified_abort": 0.145 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.9, + "uncovered_run_cap": 6, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6787878787878788, + "false_abort": 0.10766283524904215, + "justified_abort": 0.115 + }, + { + "matcher": "legacy", + "contradiction_sim": null, + "coverage_threshold": 0.9, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6794871794871795, + "false_abort": 0.10727969348659004, + "justified_abort": 0.115 + } + ], + "pareto_current": [ + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0, + "false_abort": 0.24482758620689654, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03263403263403263, + "false_abort": 0.2425287356321839, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.032867132867132866, + "false_abort": 0.2417624521072797, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03426573426573427, + "false_abort": 0.23601532567049807, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0344988344988345, + "false_abort": 0.23524904214559386, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.03613053613053613, + "false_abort": 0.21877394636015327, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.06876456876456877, + "false_abort": 0.2164750957854406, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.068997668997669, + "false_abort": 0.2157088122605364, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.0703962703962704, + "false_abort": 0.2099616858237548, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.07062937062937064, + "false_abort": 0.20919540229885059, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.13916083916083916, + "false_abort": 0.20842911877394635, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 0, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.1393939393939394, + "false_abort": 0.20766283524904214, + "justified_abort": 1.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.20046620046620048, + "false_abort": 0.1053639846743295, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2331002331002331, + "false_abort": 0.10306513409961686, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23333333333333334, + "false_abort": 0.10229885057471265, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23473193473193474, + "false_abort": 0.09655172413793103, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 0, + "absent_name_token_cap": 1000000000, + "false_accept": 0.23496503496503496, + "false_abort": 0.09578544061302682, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.85, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2365967365967366, + "false_abort": 0.07624521072796935, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2692307692307692, + "false_abort": 0.0739463601532567, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.8, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.26946386946386947, + "false_abort": 0.07318007662835249, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.27086247086247084, + "false_abort": 0.06743295019157088, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.2710955710955711, + "false_abort": 0.06666666666666667, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.3396270396270396, + "false_abort": 0.06590038314176246, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 0, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.33986013986013985, + "false_abort": 0.06513409961685823, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6715617715617715, + "false_abort": 0.06475095785440613, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6715617715617715, + "false_abort": 0.06475095785440613, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6857808857808858, + "false_abort": 0.06360153256704981, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1, + "absent_name_token_cap": 1000000000, + "false_accept": 0.6857808857808858, + "false_abort": 0.06360153256704981, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7428904428904429, + "false_abort": 0.06283524904214559, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.75, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7428904428904429, + "false_abort": 0.06283524904214559, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.62, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7571095571095571, + "false_abort": 0.061685823754789273, + "justified_abort": 0.0 + }, + { + "matcher": "current", + "contradiction_sim": 0.75, + "coverage_threshold": 0.7, + "uncovered_run_cap": 8, + "contradicted_chars_cap": 1000000000, + "suspect_chars_cap": 1000000000, + "unexplained_name_tokens_cap": 1000000000, + "absent_name_token_cap": 1000000000, + "false_accept": 0.7571095571095571, + "false_abort": 0.061685823754789273, + "justified_abort": 0.0 + } + ], + "per_category": { + "v1_current": { + "different_entity": { + "adjacent_row_mixture": 0.0, + "dob_off_by_one_field": 0.0, + "generational_suffix": 0.0, + "mrn_digit_swap": 0.0, + "prefix_extension": 0.0, + "same_first_diff_surname": 0.0, + "same_surname_diff_first": 0.0, + "shared_clinical_text": 0.0, + "single_letter_edit": 0.0, + "transposition": 0.0 + }, + "same_entity": { + "case_whitespace": 0.0, + "compound_noise": 0.6833333333333333, + "dropped_short_tokens": 0.008333333333333333, + "occlusion": 0.9333333333333333, + "ocr_confusion": 0.6583333333333333, + "reordered_segments": 0.0, + "spurious_tokens": 0.25833333333333336, + "token_join": 0.0, + "token_split": 0.0 + } + }, + "v1_legacy": { + "different_entity": { + "adjacent_row_mixture": 0.0, + "dob_off_by_one_field": 0.990909090909091, + "generational_suffix": 0.990909090909091, + "mrn_digit_swap": 0.5, + "prefix_extension": 0.7227272727272728, + "same_first_diff_surname": 0.09090909090909091, + "same_surname_diff_first": 0.15454545454545454, + "shared_clinical_text": 0.004545454545454545, + "single_letter_edit": 0.9818181818181818, + "transposition": 0.9545454545454546 + }, + "same_entity": { + "case_whitespace": 0.0, + "compound_noise": 0.16666666666666666, + "dropped_short_tokens": 0.004166666666666667, + "occlusion": 0.8958333333333334, + "ocr_confusion": 0.025, + "reordered_segments": 0.0, + "spurious_tokens": 0.0, + "token_join": 0.0, + "token_split": 0.0 + } + }, + "v2_current": { + "different_entity": { + "absent_name_token": 0.0, + "confusion_collision_ids_differ": 0.0, + "confusion_collision_ids_same": 0.0, + "confusion_collision_name_only": 0.0, + "middle_initial": 0.0, + "sex_column": 0.0, + "superset_appended_name": 0.0, + "superset_merged_row": 0.0, + "superset_title_mention": 0.0, + "two_char_name": 0.0 + }, + "indistinguishable": { + "confusion_misread_true_row": 0.0 + }, + "same_entity": { + "adjacent_bleed_lowercase": 0.0, + "digit_confusion_true_row": 0.4866666666666667, + "hyphenated_split": 0.0 + } + }, + "v2_legacy": { + "different_entity": { + "absent_name_token": 0.9533333333333334, + "confusion_collision_ids_differ": 0.0, + "confusion_collision_ids_same": 0.95, + "confusion_collision_name_only": 0.9388888888888889, + "middle_initial": 1.0, + "sex_column": 1.0, + "superset_appended_name": 1.0, + "superset_merged_row": 1.0, + "superset_title_mention": 1.0, + "two_char_name": 1.0 + }, + "indistinguishable": { + "confusion_misread_true_row": 0.905 + }, + "same_entity": { + "adjacent_bleed_lowercase": 0.0, + "digit_confusion_true_row": 0.006666666666666667, + "hyphenated_split": 0.0 + } + }, + "v3_current": { + "different_entity": { + "id_letter_digit_collision": 0.0 + } + }, + "v3_legacy": { + "different_entity": { + "id_letter_digit_collision": 1.0 + } + } + }, + "occlusion_recount": { + "shipped": { + "aborts": 216, + "aborts_with_both_names_readable": 102 + }, + "production": { + "aborts": 224, + "aborts_with_both_names_readable": 107 + } + }, + "realistic_exposure": { + "confusion_collision_name_only": { + "n": 180, + "false_accepts_at_production": 0, + "false_accepts_without_suspect_rule": 180 + }, + "confusion_collision_ids_differ": { + "n": 180, + "false_accepts_at_production": 0, + "false_accepts_without_suspect_rule": 0 + }, + "confusion_collision_ids_same": { + "n": 180, + "false_accepts_at_production": 0, + "false_accepts_without_suspect_rule": 180 + }, + "id_letter_digit_collision": { + "n": 300, + "false_accepts_at_production": 0, + "false_accepts_without_suspect_rule": 300 + } + } +} diff --git a/docs/validation/identity_roc.png b/docs/validation/identity_roc.png new file mode 100644 index 0000000..d19945b Binary files /dev/null and b/docs/validation/identity_roc.png differ diff --git a/openadapt_flow/__init__.py b/openadapt_flow/__init__.py index 39dc02e..a96a4e6 100644 --- a/openadapt_flow/__init__.py +++ b/openadapt_flow/__init__.py @@ -13,5 +13,6 @@ RunReport, Step, StepResult, + UnarmedStep, Workflow, ) diff --git a/openadapt_flow/benchmark/hybrid_benchmark.py b/openadapt_flow/benchmark/hybrid_benchmark.py index c650416..0f63149 100644 --- a/openadapt_flow/benchmark/hybrid_benchmark.py +++ b/openadapt_flow/benchmark/hybrid_benchmark.py @@ -76,6 +76,7 @@ _agent_run, _arm_aggregate, _compiled_run, + identity_coverage_block, ) from openadapt_flow.ir import Workflow @@ -1129,6 +1130,7 @@ def render_hybrid_markdown(results: dict[str, Any]) -> str: a, b = arms["compiled"], arms["agent"] c, d = arms["demo_agent"], arms["hybrid"] date = results["generated_at"][:10] + identity_block = identity_coverage_block(a) caps = results["cost_caps_usd"] sched = results["schedule"] n_drift = sum(1 for x in sched["conditions"] if x != "clean") @@ -1357,6 +1359,7 @@ def failures(arm: str) -> str: cache writes 1.25x, cache reads 0.1x input). An introductory $2/$10 rate applies through 2026-08-31, so billed cost today is roughly a third lower than reported. +{identity_block} - **Hard cost guardrails.** One shared budget across ALL paid runs (B, C, and D's fallbacks): preflight probe before any spend; per-run cap ${caps['per_run']:.2f}; total ceiling ${caps['total']:.2f} enforced diff --git a/openadapt_flow/benchmark/openemr_benchmark.py b/openadapt_flow/benchmark/openemr_benchmark.py index 947df69..ccceda2 100644 --- a/openadapt_flow/benchmark/openemr_benchmark.py +++ b/openadapt_flow/benchmark/openemr_benchmark.py @@ -66,6 +66,7 @@ _agent_run, _arm_aggregate, _compiled_run, + identity_coverage_block, render_chart, ) from openadapt_flow.benchmark.verify import verify_note_saved @@ -221,6 +222,7 @@ def render_openemr_markdown(results: dict[str, Any]) -> str: c = results["arms"]["compiled"] a = results["arms"]["agent"] date = results["generated_at"][:10] + identity_block = identity_coverage_block(c) caps = results.get("cost_caps_usd", {}) per_run_cap = caps.get("per_run", agent_baseline.MAX_COST_USD) total_cap = caps.get("total", MAX_TOTAL_COST_USD) @@ -364,6 +366,7 @@ def render_openemr_markdown(results: dict[str, Any]) -> str: reads at 0.1x the input rate). An introductory $2/$10 rate applies through 2026-08-31, so billed cost today is about a third lower than reported. Compiled replay makes zero model calls. +{identity_block} - **Prompt caching.** The agent loop places `cache_control` breakpoints on the tool definition and the newest user message each turn, so each API call reuses the cached conversation prefix; screenshot truncation diff --git a/openadapt_flow/benchmark/run_benchmark.py b/openadapt_flow/benchmark/run_benchmark.py index 65be8c5..ae56dc8 100644 --- a/openadapt_flow/benchmark/run_benchmark.py +++ b/openadapt_flow/benchmark/run_benchmark.py @@ -94,6 +94,16 @@ def _compiled_run( "success": verdict.success, "replayer_success": report.success, "heal_count": report.heal_count, + # Identity-protection coverage of the bundle (constant across + # runs of the same bundle; aggregated into the arm summary and + # surfaced in BENCHMARK.md methodology): unarmed clicks proceed + # with NO identity verification (docs/LIMITS.md). + "identity_applicable_steps": report.identity_applicable_steps, + "identity_armed_steps": report.identity_armed_steps, + "identity_unarmed": [ + {"step_id": u.step_id, "reason": u.reason} + for u in report.identity_unarmed + ], "actions": len(report.results), "first_failure": ( {"step": failed[0].step_id, "error": failed[0].error} @@ -250,9 +260,58 @@ def _arm_aggregate(rows: list[dict[str, Any]]) -> dict[str, Any]: ), "cost_usd_per_run": statistics.fmean(costs) if costs else 0.0, "cost_usd_total": sum(costs), + **_identity_coverage_aggregate(rows), } +def _identity_coverage_aggregate(rows: list[dict[str, Any]]) -> dict[str, Any]: + """Identity-protection coverage summary for a compiled arm. + + The coverage is a property of the BUNDLE (constant across runs), so + the first row that carries it speaks for the arm. Agent rows (and + results.json files produced before 2026-07-10) carry no coverage + fields and yield an empty dict — the markdown renderers then note the + metric was not captured. + """ + for r in rows: + if "identity_applicable_steps" in r: + return { + "identity_applicable_steps": r["identity_applicable_steps"], + "identity_armed_steps": r["identity_armed_steps"], + "identity_unarmed": r.get("identity_unarmed", []), + } + return {} + + +def identity_coverage_block(compiled_agg: dict[str, Any]) -> str: + """Markdown methodology bullet for identity-protection coverage. + + Shared by the MockMed and OpenEMR BENCHMARK.md renderers. + """ + if "identity_applicable_steps" not in compiled_agg: + return ( + "- **Identity-protection coverage: not captured in this " + "results.json.** The armed-coverage metric was added to the " + "generator on 2026-07-10; future runs report how many click " + "steps carry the pre-click identity check and list the " + "unarmed steps (which proceed with NO identity verification " + "— see docs/LIMITS.md)." + ) + applicable = compiled_agg["identity_applicable_steps"] + armed = compiled_agg["identity_armed_steps"] + unarmed = compiled_agg.get("identity_unarmed", []) + lines = [ + f"- **Identity-protection coverage (compiled arm): {armed} of " + f"{applicable} click steps identity-armed.** Unarmed clicks " + "proceed with NO identity verification (docs/LIMITS.md); the " + "success rates above therefore measure task completion, not " + "wrong-target immunity, on the unarmed steps." + ] + for u in unarmed: + lines.append(f" - unarmed `{u['step_id']}`: {u['reason']}") + return "\n".join(lines) + + def aggregate_results( compiled_rows: list[dict[str, Any]], agent_rows: list[dict[str, Any]], @@ -426,6 +485,7 @@ def render_markdown(results: dict[str, Any]) -> str: a = results["arms"]["agent"] drift = results["drift_theme"] date = results["generated_at"][:10] + identity_block = identity_coverage_block(c) return f"""# Benchmark: compiled replay vs. computer-use agent Date: {date}. One task, two ways to automate it, one success check. @@ -486,6 +546,7 @@ def render_markdown(results: dict[str, Any]) -> str: for {results['model']}). An introductory $2/$10 rate applies through 2026-08-31, so billed cost today is about a third lower than reported. Compiled replay makes zero model calls. +{identity_block} ## Caveats — read before quoting these numbers diff --git a/openadapt_flow/compiler/compile.py b/openadapt_flow/compiler/compile.py index 1c394b5..8178693 100644 --- a/openadapt_flow/compiler/compile.py +++ b/openadapt_flow/compiler/compile.py @@ -665,6 +665,54 @@ def _text_preview(text: str, limit: int = 24) -> str: return text if len(text) <= limit else text[: limit - 1] + "…" +def _identity_unarmed_reason( + frame_lines: list[OcrLine], + *, + band, + exclude_region, +) -> str: + """Human-readable reason a click step compiled with NO identity band. + + Mirrors the filters of ``context_from_lines`` to name which one left + the band empty — surfaced in the bundle (``Step.identity_unarmed_ + reason``) and in every run report so unguarded clicks are auditable. + """ + _, band_y, _, band_h = band + in_band = [] + for line in frame_lines: + text = (getattr(line, "text", "") or "").strip() + if not text or line.confidence < MIN_OCR_CONFIDENCE: + continue + _, ly, _, lh = line.region + if band_y <= ly + lh // 2 < band_y + band_h: + in_band.append(line) + if not in_band: + return ( + "no readable text in the target's row band at compile time " + "(icon-only or unlabeled row)" + ) + ex_x, ex_y, ex_w, ex_h = exclude_region + outside_crop = [ + line + for line in in_band + if not ( + line.region[0] < ex_x + ex_w + and ex_x < line.region[0] + line.region[2] + and line.region[1] < ex_y + ex_h + and ex_y < line.region[1] + line.region[3] + ) + ] + if not outside_crop: + return ( + "the only readable row text is the target's own label " + "(mutable evidence, excluded from identity)" + ) + return ( + "row text outside the target's label is too generic " + "(< 12 squashed chars after volatile-line filtering)" + ) + + def compile_recording( recording_dir: Path | str, out_bundle_dir: Path | str, @@ -822,6 +870,22 @@ def cached_lines(i: int, suffix: str, png: bytes) -> list[OcrLine]: context_text=context_text, landmarks=landmarks, ) + # Identity-protection audit trail: an UNARMED click proceeds + # with NO identity verification at replay (docs/LIMITS.md), so + # the bundle records armed/unarmed per step — with the reason + # — for operator review BEFORE the workflow ever runs. + identity_armed = context_text is not None + unarmed_reason: Optional[str] = None + if not identity_armed: + unarmed_reason = _identity_unarmed_reason( + frame_lines, + band=band_region( + click, + crop_region[3], + (frame.shape[1], frame.shape[0]), + ), + exclude_region=crop_region, + ) verb = "double-click" if kind == "double_click" else "click" intent = ( f"{verb} '{ocr_text}'" @@ -839,6 +903,8 @@ def cached_lines(i: int, suffix: str, png: bytes) -> list[OcrLine]: else ActionKind.CLICK ), anchor=anchor, + identity_armed=identity_armed, + identity_unarmed_reason=unarmed_reason, ), before_png, after_png, diff --git a/openadapt_flow/ir.py b/openadapt_flow/ir.py index abeaa16..93df3df 100644 --- a/openadapt_flow/ir.py +++ b/openadapt_flow/ir.py @@ -137,6 +137,30 @@ class Step(BaseModel): expect: list[Postcondition] = Field(default_factory=list) risk: Literal["reversible", "irreversible"] = "reversible" timeout_s: float = 10.0 + # Identity-protection audit trail (clicks and anchored TYPE steps): + # whether this step's click is guarded by the pre-click identity check + # (anchor.context_text present). Written by the compiler so an + # operator can audit a bundle's protection coverage BEFORE running it; + # None on non-click steps and on bundles compiled before this field + # existed. An UNARMED click proceeds with NO identity verification + # (see docs/LIMITS.md). + identity_armed: Optional[bool] = Field( + default=None, + description=( + "Clicks/anchored TYPE only: True when the pre-click identity" + " check is armed (context band recorded); False when the step" + " will click WITHOUT identity verification; None for steps" + " the check does not apply to (or pre-metric bundles)." + ), + ) + identity_unarmed_reason: Optional[str] = Field( + default=None, + description=( + "Why an applicable step compiled unarmed (no readable band" + " text, band too generic, ...); None when armed or not" + " applicable." + ), + ) class Workflow(BaseModel): @@ -238,6 +262,14 @@ class StepResult(BaseModel): elapsed_ms: float = 0.0 +class UnarmedStep(BaseModel): + """A click step that will proceed with NO identity verification.""" + + step_id: str + intent: str = "" + reason: str = "" + + class RunReport(BaseModel): workflow_name: str started_at: str @@ -249,6 +281,13 @@ class RunReport(BaseModel): model_calls: int = 0 est_model_cost_usd: float = 0.0 total_ms: float = 0.0 + # Identity-protection coverage of the WHOLE workflow (computed at run + # start from the bundle, not just from executed steps): how many of + # the identity-applicable steps (clicks / anchored TYPE) carry an + # armed pre-click identity check, and which proceed unguarded. + identity_applicable_steps: int = 0 + identity_armed_steps: int = 0 + identity_unarmed: list[UnarmedStep] = Field(default_factory=list) def save(self, run_dir: Path | str) -> Path: run = Path(run_dir) diff --git a/openadapt_flow/report.py b/openadapt_flow/report.py index 876fc77..02a4916 100644 --- a/openadapt_flow/report.py +++ b/openadapt_flow/report.py @@ -84,6 +84,37 @@ def render_run_report(run_dir: Path | str) -> Path: lines.append("_No parameters._") lines.append("") + # -- Identity-protection coverage ------------------------------------ + # Stated on every report: identity verification covers ONLY armed + # steps; an unarmed click proceeds with no identity check at all + # (docs/LIMITS.md). Computed over the whole bundle at run start, so + # the numbers cover steps the run never reached. + lines.append("## Identity protection coverage") + lines.append("") + if report.identity_applicable_steps: + lines.append( + f"**{report.identity_armed_steps} of " + f"{report.identity_applicable_steps} click steps " + "identity-armed.** Unarmed clicks proceed with **no identity " + "verification** (see docs/LIMITS.md)." + ) + if report.identity_unarmed: + lines.append("") + lines.append("| Unarmed step | Intent | Reason |") + lines.append("| --- | --- | --- |") + for unarmed in report.identity_unarmed: + lines.append( + f"| `{_md_escape(unarmed.step_id)}` " + f"| {_md_escape(unarmed.intent)} " + f"| {_md_escape(unarmed.reason)} |" + ) + else: + lines.append( + "_No identity-applicable (anchored click/type) steps in this " + "workflow._" + ) + lines.append("") + # -- Per-step table --------------------------------------------------- lines.append("## Steps") lines.append("") diff --git a/openadapt_flow/runtime/identity.py b/openadapt_flow/runtime/identity.py index e474282..f3a3d83 100644 --- a/openadapt_flow/runtime/identity.py +++ b/openadapt_flow/runtime/identity.py @@ -15,12 +15,29 @@ - **context mode** — an order-insensitive token match against the recorded band text (see :func:`band_match`): matched tokens must cover >= - ``COVERAGE_THRESHOLD`` of the recorded band AND no contiguous run of - uncovered recorded characters may exceed ``UNCOVERED_RUN_CAP`` — a wrong - entity is a contiguous mismatch (a replaced name), even when long shared - row text keeps raw coverage high. Order-insensitivity matters because - OCR re-reads the same band in a different segmentation order between - visits (e.g. page chrome around a modal), or + ``COVERAGE_THRESHOLD`` of the recorded band, no contiguous run of + uncovered recorded characters may exceed ``UNCOVERED_RUN_CAP`` (a wrong + entity is a contiguous mismatch — a replaced name — even when long + shared row text keeps raw coverage high), AND no more than + ``CONTRADICTED_CHARS_CAP`` characters may be NEAR-MISSES: tokens only + match when OCR-equivalent under the engine's character-confusion + classes, and an unmatched token whose observed counterpart is a + near-name ('Phil'/'Philip', 'John'/'Joan', an off-by-one DOB) is + affirmative wrong-sibling evidence with its own, stricter budget. + Since the 2026-07-10 out-of-corpus review, four further budgets close + the classes corpus v1 excluded by construction: a name-plausible token + matched ONLY by letter-letter confusion equivalence is SUSPECT (a + Neil/Nell collision is indistinguishable from a misread — abort, see + ``SUSPECT_CHARS_CAP``); a raw-unequal, non-confusion-equivalent 1-2 + char token is contradiction (middle initials, the SEX column); an + observed name-shaped token the recorded band cannot explain is + contradiction (appended names, two-row merges, rows that merely + MENTION the recorded patient); and an ABSENT name-like alphabetic + token >= 4 chars refuses even inside the generic run cap (identity + must not verify with its identity token never read). + Order-insensitivity matters because OCR re-reads the same band in a + different segmentation order between visits (e.g. page chrome around a + modal), or - **param mode** — when a workflow parameter's demonstrated value is embedded in the recorded band (a parameterized *target*, e.g. the patient row), the run's value is substituted into the recorded band and the WHOLE @@ -46,8 +63,9 @@ import difflib import re +from collections import Counter from datetime import date -from typing import Any, Iterable, Optional +from typing import Any, Iterable, NamedTuple, Optional from openadapt_flow.ir import IdentityCheck, Point, Region from openadapt_flow.volatility import ( # noqa: F401 - TIMESTAMP_RE re-exported @@ -83,21 +101,130 @@ # entity is a CONTIGUOUS mismatch, so no contiguous run of unmatched # recorded characters (adjacent unmatched tokens merge) may exceed this # cap. 4 tolerates a single genuinely mutable short cell ("with" garbled -# beyond token similarity, a 1-char counter) while a replaced name — +# beyond recognition, a 1-char counter) while a replaced name — # "Jane Li" -> "Ann Wu" leaves 6 contiguous uncovered chars — fails. +# Operating point picked from the held-out adversarial ROC +# (docs/validation/IDENTITY_ROC.md). UNCOVERED_RUN_CAP = 4 -# Token matching tiers (see band_match): a token is matched when it appears -# verbatim among the observed tokens, OR >= TOKEN_RUN_FRACTION of it -# appears as one contiguous run anywhere in the squashed observed text -# (segmentation-independent containment), OR some observed token is -# whole-token similar at >= TOKEN_SIM_RATIO. 0.7 separates OCR jitter -# ("paln" ~ "pain" 0.75, "hlgh" ~ "high" 0.75) from different words that -# merely share letters ("jane" ~ "panel" 0.67, "jane" ~ "ann" 0.57). +# Token matching (see band_match): a recorded token is MATCHED only when +# some observed token — or a concatenation of consecutive observed tokens +# (OCR split the token), or when a concatenation of consecutive recorded +# tokens (OCR joined them) — is OCR-EQUIVALENT to it: identical after +# canonicalizing the character classes real OCR engines confuse +# (l/1/i/|, O/0, 5/s, 2/z, 8/b, 9/g, rn/m, cl/d, vv/w). There is no raw +# similarity-ratio tier and no partial-containment tier anymore: both +# accepted semantic *extensions* of name tokens ('Phil' inside 'Philip' +# at containment 1.0; 'John' vs 'Joan' at ratio 0.75) — the third +# reopening of the wrong-patient P0 (near-name siblings; see +# docs/validation/VALIDATION.md). A substitution of a/o mid-token is a +# different word, not OCR noise; OCR noise has characteristic char-class +# patterns, and only those are accepted. MIN_BLOCK = 3 -TOKEN_RUN_FRACTION = 0.8 + +# Whole-token similarity used ONLY by substitute_param's token-ownership +# test (which band tokens belong to a parameter's demo value), not by +# band matching. TOKEN_SIM_RATIO = 0.7 +# A recorded token that is NOT matched is CONTRADICTED — affirmative +# evidence of a different entity, not mere absence — when a >=3-char +# observed token is a near-miss for it: canonically similar at >= +# CONTRADICTION_SIM (DOB/MRN single-field edits ~0.9, John/Joan 0.75, +# 3-char names Ted/Tad 0.67), or one canonically contains the other with +# alphabetic residue ('Phil' inside 'Phillipa', sim 0.67 — a semantic +# extension). An unmatched recorded ALPHABETIC token paired with an +# unexplained observed alphabetic token is likewise contradiction (a +# replaced word: 'Amy' -> 'Kim' at sim 0.0), and a generational suffix +# (Jr/Sr/II/III/IV) present on exactly one side always contradicts. +# Contradicted characters are capped separately from mere-absence runs: +# absence is often OCR dropout (occlusion, dropped tokens — the $-cost +# fallback direction), while contradiction is the wrong-sibling-row +# signature. Both caps come from the held-out ROC. +CONTRADICTION_SIM = 0.62 +CONTRADICTED_CHARS_CAP = 0 + +# SUSPECT tokens (2026-07-10 out-of-corpus review): a DISCRIMINATOR token +# whose ONLY match is confusion-equivalence — canonical-equal but +# raw-unequal — is charged to this zero budget, because a confusion-only +# match on a discriminator is indistinguishable at band level from a +# wrong-row read. Two discriminator classes qualify: +# +# - NAMES (Blocker 1): a name-plausible token (>= MIN_BLOCK chars, no +# digits on either side) — 'Neil'/'Nell' (i/l), 'Clay'/'Day' (cl/d), +# 'Marnie'/'Mamie' (rn/m) are DIFFERENT REAL NAMES that canonicalize +# identically. Digit-class noise on a NAME ('Belford'/'Be1ford', +# '5ample') stays a clean match — a human name contains no digit, so +# the recorded token being all-alpha proves it is a name and the +# digit came from OCR, not a rival name. +# +# - IDENTIFIERS (5th reopening, second review): a RECORDED token that +# CONTAINS A DIGIT (MRN, account number, chart ref, DOB) whose match +# needed a letter/digit confusion (l/1, O/0, S/5, Z/2, B/8, g/9) is +# a different identifier, 'A01234'/'AO1234' — and the identifier is +# precisely what disambiguates same-name patients. The round-3 rule +# missed this because it keyed on name-plausibility (false for any +# token with a digit), so the suspect budget was OFF for exactly the +# tokens whose confusion equivalence is most dangerous. Scoping on +# the RECORDED token (not the observed one) is what keeps +# name-with-digit-noise verifying while identifier-with-digit +# aborting: the recording carries the ground truth of the token's +# type. All-digit differences (748291 vs 748292) are NOT +# confusion-equivalent (two digits are never in one class), so they +# mismatch via coverage/contradiction, not here. +# +# The budget is zero for both. For identifiers this is option A of the +# review (no corroboration escape): a confusion-differing identifier +# aborts even when name and DOB raw-match, so two same-name patients +# distinguished only by an OCR-confusable identifier char never verify — +# the availability cost (true-row identifier OCR noise now halts) is the +# cheap direction and is disclosed in docs/LIMITS.md. +SUSPECT_CHARS_CAP = 0 + +# Unexplained observed NAME-SHAPED tokens (review Blocker 3): an +# observed-side superset used to verify unconditionally — context mode +# had no unexplained-observed-token budget (param mode always had one via +# its raw run requirement). An observed token that is name-shaped +# (leading uppercase in the raw band, alphabetic-dominated, +# name-plausible, >= MIN_BLOCK chars) and that the recorded band cannot +# explain is affirmative evidence of a different or merged row: an +# appended middle name, a second row OCR-merged into the band, or a +# message/cc row that MENTIONS the recorded patient. Budget zero, from +# the v1+v2 ROC. Lowercase adjacent-row bleed (mid-procedure words) is +# deliberately exempt — the legitimate spurious-token class. +UNEXPLAINED_NAME_TOKENS_CAP = 0 + +# Absent name-like tokens (review Major 4): the generic uncovered-run +# cap tolerates a 4-char absence, which let a band verify with its +# 4-char first name never read at all ('Belford, Phil' vs 'Belford,'). +# Absence of a name-like ALPHABETIC token is worse than absence of +# trailing numerics (DOB/MRN dropout is the common $-cost OCR direction; +# a missing name is the identity token itself), so unmatched +# alphabetic-dominated, name-plausible tokens carry their own cap: 3 +# chars — a dropped 'MRN' label or generic 3-char word is tolerated, a +# >= 4-char name-like token must be read (raw or confusion) to verify. +ABSENT_NAME_TOKEN_CAP = 3 + +# Characters that cannot appear in a real person's name but do appear in +# OCR confusion classes: a raw-unequal token pair involving one of these +# is genuine OCR noise, not a possible different name. +_NON_NAME_CHARS = frozenset("0123456789|!") + +# Generational suffixes: presence on one side only is identity-bearing +# ('Belford, Phil' vs 'Belford, Phil Jr' is a different patient). +# Membership is tested on the OCR-canonical form (a live 'II' commonly +# reads as 'lI'/'Il'; 'Sr' as '5r') — see _is_generational_suffix. +GENERATIONAL_SUFFIXES = frozenset({"jr", "jr.", "sr", "sr.", "ii", "iii", "iv"}) + +# OCR character-confusion classes (squashed/lowercased space). A pair of +# tokens is OCR-equivalent iff equal after canonicalization: multi-char +# shapes first (rn->m, cl->d, vv->w), then per-char class representatives. +_CONFUSION_GROUPS = ("l1i|!", "o0", "s5", "z2", "b8", "g9") +_CONFUSION_MULTI = (("rn", "m"), ("cl", "d"), ("vv", "w")) +_CONFUSION_CANON = { + ch: group[0] for group in _CONFUSION_GROUPS for ch in group +} + # Param mode: required contiguous run for the run's parameter value, scaled # for short values (a full 16-char run cannot exist inside a 5-char name). MAX_RUN_REQUIRED = 16 @@ -144,12 +271,21 @@ def band_region( return (0, y, vw, min(h, vh - y)) -def _intersects(a: Region, b: Region) -> bool: +def regions_intersect(a: Region, b: Region) -> bool: + """Whether two (x, y, w, h) regions overlap. Public because the + replayer uses it to exclude the resolved target's own crop from the + live band (mirroring the compiler's record-time exclusion — the + label is mutable evidence and must not participate in identity, and + an ASYMMETRIC observed band would trip the unexplained-name budget + on the target's own label).""" ax, ay, aw, ah = a bx, by, bw, bh = b return ax < bx + bw and bx < ax + aw and ay < by + bh and by < ay + ah +_intersects = regions_intersect + + def lines_near_point(lines: Iterable[Any], point_y: int) -> list[Any]: """Filter OCR lines to the single text row containing ``point_y``. @@ -293,81 +429,434 @@ def tokenize(text: str) -> list[str]: return [squash(tok) for tok in text.split() if squash(tok)] -def _token_matched(token: str, hay_squashed: str, hay_tokens: list[str]) -> bool: - """Whether one recorded token is present in the observed band. - - Three tiers, all order-insensitive (OCR re-reads the same band in a - different segmentation order between visits — token order must not - matter): - - 1. verbatim: the token appears as an observed token; - 2. containment: >= ``TOKEN_RUN_FRACTION`` of the token appears as ONE - contiguous run anywhere in the squashed observed text (tolerates - the engine merging tokens: recorded "ShowActive" vs observed - "Show Active"); requires the run to be >= ``MIN_BLOCK`` chars, so - 1-2 char tokens can only match verbatim (a lone "li" must not - match inside "lipid"); - 3. similarity: some observed token of >= ``MIN_BLOCK`` chars is - whole-token similar at >= ``TOKEN_SIM_RATIO`` (OCR jitter: - "paln" ~ "pain"; a genuinely different name — "ann" vs "jane", - ratio 0.57 — stays below the bar). +def ocr_canonical(token: str) -> str: + """Canonical form under the OCR character-confusion classes. + + Two tokens are OCR-equivalent iff their canonical forms are equal — + 'paln' == 'pain' (l/i), '5ample' == 'sample' (5/s), 'cornpre' == + 'compre' (rn/m) — while 'john' != 'joan' (a/o is not an OCR + confusion) and 'phil' != 'philip' (extension is not noise). + """ + t = token.lower() + for a, b in _CONFUSION_MULTI: + t = t.replace(a, b) + return "".join(_CONFUSION_CANON.get(ch, ch) for ch in t) + + +def _alpha_dominated(token: str) -> bool: + return sum(ch.isalpha() for ch in token) * 2 >= len(token) + + +def _name_plausible(token: str) -> bool: + """Whether every character of a squashed token could appear in a real + name (no digits, no confusion-class symbols): only such tokens can + collide with a DIFFERENT real name under letter-letter confusions.""" + return not any(ch in _NON_NAME_CHARS for ch in token) + + +def _has_digit(token: str) -> bool: + return any(ch.isdigit() for ch in token) + + +def _suspicious_pair(expected: str, observed: str) -> bool: + """A canonical-equal, raw-unequal token pair whose match is a + confusion-only match on a DISCRIMINATOR — indistinguishable at band + level from a wrong-row read. Two qualifying shapes: + + - NAME collision (Neil/Nell): both sides name-plausible and long + enough to be a name; + - IDENTIFIER collision (A01234/AO1234): the RECORDED token contains a + digit (an MRN/account/DOB), so a letter/digit confusion turned it + into a DIFFERENT identifier. Scoped on the RECORDED token: a name + OCR'd WITH a digit ('Belford' -> 'Be1ford') has an all-alpha + recorded token and is NOT suspect (clean OCR noise), while an + identifier is suspect regardless of the observed side. """ - if token in hay_tokens: + if _has_digit(expected): + # Recorded identifier matched only via confusion: a different ID. return True - if len(token) >= MIN_BLOCK: - need = max(MIN_BLOCK, -(-len(token) * 4 // 5)) # ceil(0.8 * len) - if longest_run(token, hay_squashed) >= need: - return True - for observed in hay_tokens: - if len(observed) < MIN_BLOCK: + return ( + len(expected) >= MIN_BLOCK + and _name_plausible(expected) + and _name_plausible(observed) + ) + + +def _name_shaped(raw_token: str, squashed_token: str) -> bool: + """Whether an observed band token looks like part of a person's name: + leading uppercase in the RAW band text, alphabetic-dominated, + name-plausible, at least MIN_BLOCK squashed chars. Used by the + unexplained-observed-token budget — lowercase adjacent-row bleed + (mid-procedure words) is deliberately not name-shaped.""" + return ( + len(squashed_token) >= MIN_BLOCK + and raw_token[:1].isupper() + and _alpha_dominated(squashed_token) + and _name_plausible(squashed_token) + ) + + +_GEN_SUFFIX_CANON = frozenset( + ocr_canonical(s) for s in GENERATIONAL_SUFFIXES +) + + +def _is_generational_suffix(token: str) -> bool: + """Whether a squashed token is a Jr/Sr/II/III/IV generational suffix, + tolerating OCR confusions ('lI' for 'II', '5r' for 'Sr').""" + return ocr_canonical(token) in _GEN_SUFFIX_CANON + + +class BandMatch(NamedTuple): + """Result of matching a recorded band against a live band. + + Attributes: + coverage: Fraction of recorded squashed characters in matched + tokens. + max_uncovered_run: Longest contiguous run of unmatched recorded + characters (adjacent unmatched tokens merge) — absence + evidence (OCR dropout or a replaced stretch). + contradicted_chars: Total squashed characters of recorded tokens + with a NEAR-MISS in the observed band — affirmative evidence + of a different entity (sibling names, edited DOB/MRN fields, + generational suffixes, replaced words, changed short tokens + like a middle initial or the sex column). + suspect_chars: Total squashed characters of recorded + name-plausible tokens matched ONLY by letter-letter + confusion equivalence — a Neil/Nell-class collision, + indistinguishable from a misread of the true row (abort is + the correct outcome for both readings). + unexplained_name_tokens: Observed name-shaped tokens the + recorded band cannot explain — appended names, merged rows, + rows that mention the recorded patient. + max_absent_alpha_token: Longest unmatched name-like alphabetic + recorded token — absence of the identity token itself, worse + than trailing-numerics dropout. + """ + + coverage: float + max_uncovered_run: int + contradicted_chars: int + suspect_chars: int = 0 + unexplained_name_tokens: int = 0 + max_absent_alpha_token: int = 0 + + +def _match_tokens( + exp: list[str], obs: list[str] +) -> tuple[list[bool], list[bool], list[bool], list[bool]]: + """Mark matched recorded tokens and explained observed tokens. + + Order-insensitive at token granularity (OCR re-reads the same band in + a different segmentation order between visits), with explicit + merge/split handling — splits and joins preserve LOCAL adjacency even + when segments permute: + + - single: an observed token is OCR-equivalent to the recorded token; + - split: consecutive recorded tokens concatenate (OCR-equivalently) + to one observed token (recorded 'Show' 'Active' vs observed + 'ShowActive'); + - join: consecutive observed tokens concatenate to one recorded + token (recorded 'ShowActive' vs observed 'Show Active'). + + OCR-equivalence is canonical-form equality (:func:`ocr_canonical`): + there is deliberately NO similarity-ratio or partial-containment + acceptance — those tiers verified near-name siblings (Phil/Philip, + John/Joan), the third wrong-patient reopening. + + For each matched recorded token the match QUALITY is tracked too: + ``raw_matched`` marks tokens with a raw-equal (squashed-identical) + counterpart, and ``suspect_evidence`` marks tokens whose only + evidence is a letter-letter confusion equivalence against a + name-plausible observed counterpart (the Neil/Nell collision class — + see :data:`SUSPECT_CHARS_CAP`). + + Returns: + ``(matched, explained, raw_matched, suspect_evidence)``. + """ + exp_c = [ocr_canonical(t) for t in exp] + obs_c = [ocr_canonical(t) for t in obs] + matched = [False] * len(exp) + explained = [False] * len(obs) + raw_matched = [False] * len(exp) + suspect_evidence = [False] * len(exp) + + def mark(i: int, expected_raw: str, observed_raw: str) -> None: + matched[i] = True + if expected_raw == observed_raw: + raw_matched[i] = True + elif _suspicious_pair(expected_raw, observed_raw): + suspect_evidence[i] = True + + # single-token equivalence (mark every equivalent observed copy) + for i, ec in enumerate(exp_c): + for j, oc in enumerate(obs_c): + if ec == oc: + mark(i, exp[i], obs[j]) + explained[j] = True + + # split: consecutive recorded tokens -> one observed token + for i in range(len(exp)): + for size in (2, 3, 4): + if i + size > len(exp): + break + if all(matched[i : i + size]): continue + concat_raw = "".join(exp[i : i + size]) + concat_c = ocr_canonical(concat_raw) + if len(concat_c) < MIN_BLOCK: + continue + for j, oc in enumerate(obs_c): + if oc == concat_c: + rawok = concat_raw == obs[j] + for m in range(i, i + size): + matched[m] = True + if rawok: + raw_matched[m] = True + elif _suspicious_pair(concat_raw, obs[j]): + suspect_evidence[m] = True + explained[j] = True + + # join: one recorded token -> consecutive observed tokens + for i, token in enumerate(exp): + if matched[i] or len(exp_c[i]) < MIN_BLOCK: + continue + for j in range(len(obs)): + for size in (2, 3, 4): + if j + size > len(obs): + break + concat_raw = "".join(obs[j : j + size]) + if ocr_canonical(concat_raw) == exp_c[i]: + mark(i, token, concat_raw) + for m in range(j, j + size): + explained[m] = True + break + if matched[i]: + break + return matched, explained, raw_matched, suspect_evidence + + +def _contradicted( + exp: list[str], + obs: list[str], + matched: list[bool], + explained: list[bool], + *, + contradiction_sim: float, +) -> list[bool]: + """Mark recorded tokens whose absence is a NEAR-MISS, not dropout. + + A wrong sibling row does not merely lack the recorded name — it shows + a near-name in its place. Five contradiction shapes (rationale on the + constants above): + + - near-miss similarity: an observed >=3-char token is canonically + similar at >= ``contradiction_sim``; + - semantic extension: one token canonically contains the other with + alphabetic residue ('Phil' in 'Phillipa'); + - replacement: the recorded token is alphabetic and some UNexplained + alphabetic observed token exists ('Amy' -> 'Kim', similarity 0); + - short-token replacement (2026-07-10 review, Blocker 2): a 1-2 char + alphabetic recorded token, unmatched, with an unexplained observed + alphabetic token of the SAME length that is not + confusion-equivalent — a changed middle initial ('J' -> 'K'), the + SEX column ('M' -> 'F'), a 2-char name ('Al' -> 'Bo'). These sat + below MIN_BLOCK and were invisible to every rule; + - generational suffix on either side, unmatched. + """ + exp_c = [ocr_canonical(t) for t in exp] + obs_c = [ocr_canonical(t) for t in obs] + contradicted = [False] * len(exp) + unexplained_alpha = any( + not explained[j] and len(o) >= MIN_BLOCK and _alpha_dominated(o) + for j, o in enumerate(obs) + ) + obs_suffix_unexplained = any( + not explained[j] and _is_generational_suffix(o) + for j, o in enumerate(obs) + ) + for i, token in enumerate(exp): + if matched[i]: + continue + if _is_generational_suffix(token): + contradicted[i] = True + continue + if len(token) < MIN_BLOCK: + # Short-token replacement (Blocker 2) is handled with + # COUNT-based accounting in band_match: a replaced initial + # that happens to duplicate another band token (a middle + # initial 'F' colliding with the sex column's 'F') would look + # "explained" here per-pair while the multiset clearly shows + # one copy missing and a foreign copy standing in its place. + continue + if unexplained_alpha and _alpha_dominated(token): + contradicted[i] = True + continue + ec = exp_c[i] + for j, oc in enumerate(obs_c): + if len(obs[j]) < MIN_BLOCK or oc == ec: + continue + shorter, longer = sorted((ec, oc), key=len) + if ( + len(shorter) >= MIN_BLOCK + and shorter in longer + and any( + ch.isalpha() for ch in longer.replace(shorter, "", 1) + ) + ): + contradicted[i] = True + break ratio = difflib.SequenceMatcher( - None, token, observed, autojunk=False + None, ec, oc, autojunk=False ).ratio() - if ratio >= TOKEN_SIM_RATIO: - return True - return False - - -def band_match(expected_text: str, observed_text: str) -> tuple[float, int]: + if ratio >= contradiction_sim: + contradicted[i] = True + break + if obs_suffix_unexplained: + # A generational suffix the recorded band does not have: the + # observed row is a different generation of the same name. Charge + # it to the nearest recorded name evidence: mark ALL unmatched + # recorded tokens contradicted, and if everything matched, the + # caller's suffix flag below still forces the contradiction. + for i in range(len(exp)): + if not matched[i]: + contradicted[i] = True + return contradicted + + +def band_match( + expected_text: str, + observed_text: str, + *, + contradiction_sim: float = CONTRADICTION_SIM, +) -> BandMatch: """Match a recorded band against a live band, token-wise. - Order-insensitive (see :func:`_token_matched`) with residue tracking: - walking the recorded tokens in order, contiguous runs of UNMATCHED - tokens accumulate their squashed lengths — a wrong entity is a - contiguous mismatch ("Jane Li" replaced by "Ann Wu" leaves a 6-char - uncovered run) even when long shared text keeps overall coverage high. + Order-insensitive (see :func:`_match_tokens`) with two kinds of + residue, tracked separately because they mean different things: + + - **uncovered runs** — walking the recorded tokens in order, + contiguous runs of UNMATCHED tokens accumulate their squashed + lengths: a wrong entity is a contiguous mismatch ("Jane Li" + replaced by "Ann Wu" leaves a 6-char uncovered run) even when long + shared row text keeps overall coverage high; + - **contradicted chars** — recorded tokens with a NEAR-MISS in the + observed band (see :func:`_contradicted`): 'Phil' vs 'Philip' is + only a 4-char absence (within any workable run cap) but it is + affirmative evidence of a sibling, so it is charged to a separate, + much stricter budget. + + An observed generational suffix absent from the recorded band + contradicts even when every recorded token matched ('Belford, Phil' + vs 'Belford, Phil Jr'): the returned ``contradicted_chars`` is + forced positive. Args: expected_text: The recorded (or parameter-substituted) band text. observed_text: The live band text. + contradiction_sim: Near-miss similarity threshold (exposed for + the ROC harness; production uses ``CONTRADICTION_SIM``). Returns: - ``(coverage, max_uncovered_run)`` — the fraction of recorded - squashed characters in matched tokens, and the longest contiguous - run of uncovered squashed characters. + A :class:`BandMatch` (coverage, max_uncovered_run, + contradicted_chars, suspect_chars, unexplained_name_tokens, + max_absent_alpha_token). """ - expected_tokens = tokenize(expected_text) - if not expected_tokens: - return 0.0, 0 - hay_squashed = squash(observed_text) - hay_tokens = tokenize(observed_text) + exp = tokenize(expected_text) + if not exp: + return BandMatch(0.0, 0, 0) + obs_raw = [tok for tok in observed_text.split() if squash(tok)] + obs = [squash(tok) for tok in obs_raw] + exp_c = [ocr_canonical(t) for t in exp] + obs_c_all = [ocr_canonical(t) for t in obs] + matched, explained, raw_matched, suspect_evidence = _match_tokens( + exp, obs + ) + contradicted = _contradicted( + exp, obs, matched, explained, contradiction_sim=contradiction_sim + ) + matched_chars = 0 total_chars = 0 + contradicted_chars = 0 + suspect_chars = 0 + max_absent_alpha = 0 uncovered_runs: list[int] = [] current_run = 0 - for token in expected_tokens: + for i, token in enumerate(exp): total_chars += len(token) - if hay_squashed and _token_matched(token, hay_squashed, hay_tokens): + if matched[i]: matched_chars += len(token) + if not raw_matched[i] and suspect_evidence[i]: + # Matched ONLY by letter-letter confusion equivalence: + # the Neil/Nell collision class (Blocker 1). + suspect_chars += len(token) if current_run: uncovered_runs.append(current_run) current_run = 0 else: current_run += len(token) + if contradicted[i]: + contradicted_chars += len(token) + if _alpha_dominated(token) and _name_plausible(token): + # Absent name-like token (Major 4): identity must not + # verify when its identity token was never read. + max_absent_alpha = max(max_absent_alpha, len(token)) if current_run: uncovered_runs.append(current_run) - return matched_chars / total_chars, max(uncovered_runs, default=0) + if contradicted_chars == 0 and any( + not explained[j] and _is_generational_suffix(o) + for j, o in enumerate(obs) + ): + # Fully-matched band plus an unexplained observed Jr/Sr/II: the + # generation differs even though every recorded token matched. + contradicted_chars = max( + (len(o) for o in obs if _is_generational_suffix(o)), default=2 + ) + # Short-token replacement (Blocker 2), multiset accounting: 'J' -> 'K' + # middle initials, the SEX column 'M' -> 'F', 2-char names 'Al' -> + # 'Bo'. Count-based on canonical forms, because a replaced initial + # can DUPLICATE another band token ('Frank R ... F' -> 'Frank F ... + # F' leaves both observed 'F's "explained" per-pair while the + # multiset shows one 'R' missing and a foreign 'F' in its place). + # Absence alone (OCR dropped a short token) stays tolerated: a + # replacement needs a missing copy AND a same-length foreign copy. + exp_short = Counter( + exp_c[i] + for i, t in enumerate(exp) + if len(t) < MIN_BLOCK and t.isalpha() + ) + obs_short = Counter( + obs_c_all[j] + for j, o in enumerate(obs) + if len(o) < MIN_BLOCK and o.isalpha() + ) + missing_short = exp_short - obs_short + excess_short = obs_short - exp_short + replaced = [ + a + for a in missing_short + for b in excess_short + if len(a) == len(b) + ] + if replaced: + contradicted_chars += max(len(a) for a in replaced) + # Observed-side superset (Blocker 3): name-shaped observed tokens the + # recorded band cannot explain — appended names, merged second rows, + # message/cc rows that merely MENTION the recorded patient. + unexplained_names = sum( + 1 + for j, raw in enumerate(obs_raw) + if not explained[j] and _name_shaped(raw, obs[j]) + ) + return BandMatch( + matched_chars / total_chars, + max(uncovered_runs, default=0), + contradicted_chars, + suspect_chars, + unexplained_names, + max_absent_alpha, + ) def _token_belongs_to(token: str, value_squashed: str) -> bool: @@ -427,6 +916,20 @@ def embedded_params( return names +def _band_ok(match: BandMatch) -> bool: + """The pinned operating point (docs/validation/IDENTITY_ROC.md): + coverage, uncovered-run, contradiction, suspect (letter-letter + collision), unexplained-name and absent-name budgets must ALL hold.""" + return ( + match.coverage >= COVERAGE_THRESHOLD + and match.max_uncovered_run <= UNCOVERED_RUN_CAP + and match.contradicted_chars <= CONTRADICTED_CHARS_CAP + and match.suspect_chars <= SUSPECT_CHARS_CAP + and match.unexplained_name_tokens <= UNEXPLAINED_NAME_TOKENS_CAP + and match.max_absent_alpha_token <= ABSENT_NAME_TOKEN_CAP + ) + + def verify_target_identity( context_text: str, observed_text: str, @@ -500,12 +1003,11 @@ def verify_target_identity( observed=observed_text, param=name, ) - cov, uncovered = band_match(substituted, observed_text) - ok = cov >= COVERAGE_THRESHOLD and uncovered <= UNCOVERED_RUN_CAP + match = band_match(substituted, observed_text) return IdentityCheck( - status="verified" if ok else "mismatch", + status="verified" if _band_ok(match) else "mismatch", mode="param", - coverage=round(cov, 4), + coverage=round(match.coverage, 4), expected=substituted, observed=observed_text, param=in_band[0], @@ -513,11 +1015,10 @@ def verify_target_identity( if not hay: return IdentityCheck(status="unreadable", expected=expected) - cov, uncovered = band_match(context_text, observed_text) - ok = cov >= COVERAGE_THRESHOLD and uncovered <= UNCOVERED_RUN_CAP + match = band_match(context_text, observed_text) return IdentityCheck( - status="verified" if ok else "mismatch", - coverage=round(cov, 4), + status="verified" if _band_ok(match) else "mismatch", + coverage=round(match.coverage, 4), expected=expected, observed=observed_text, ) diff --git a/openadapt_flow/runtime/replayer.py b/openadapt_flow/runtime/replayer.py index 6c46ed6..5cbc1a9 100644 --- a/openadapt_flow/runtime/replayer.py +++ b/openadapt_flow/runtime/replayer.py @@ -20,7 +20,7 @@ import math import time -from datetime import datetime, timezone +from datetime import date, datetime, timezone from pathlib import Path from typing import Any, Optional @@ -34,6 +34,7 @@ RunReport, Step, StepResult, + UnarmedStep, Workflow, ) from openadapt_flow.runtime import heal as heal_mod @@ -157,6 +158,7 @@ def run( started_at=datetime.now(timezone.utc).isoformat(), params=params, ) + self._record_identity_coverage(workflow, report) new_crops: dict[str, bytes] = {} self._last_click_point: Optional[Point] = None t_run = time.monotonic() @@ -195,6 +197,44 @@ def run( report.save(run_dir) return report + @staticmethod + def _record_identity_coverage( + workflow: Workflow, report: RunReport + ) -> None: + """Record the bundle's identity-protection coverage on the report. + + Computed over the WHOLE workflow at run start (not just executed + steps): every anchored click / double-click / TYPE step is + identity-applicable; it is ARMED when the pre-click identity gate + will actually run (``anchor.context_text`` present — the ground + truth the gate itself keys on). Unarmed steps proceed with NO + identity verification (docs/LIMITS.md), so each one is listed by + id with the compile-time reason for the operator. + """ + for step in workflow.steps: + if step.anchor is None or step.action not in ( + ActionKind.CLICK, + ActionKind.DOUBLE_CLICK, + ActionKind.TYPE, + ): + continue + report.identity_applicable_steps += 1 + if step.anchor.context_text: + report.identity_armed_steps += 1 + else: + report.identity_unarmed.append( + UnarmedStep( + step_id=step.id, + intent=step.intent, + reason=step.identity_unarmed_reason + or ( + "no identity context recorded at compile time" + " (bundle predates the armed-coverage audit" + " field)" + ), + ) + ) + # -- per-step execution --------------------------------------------------- def _run_step( @@ -518,19 +558,48 @@ def _verify_identity( The best :class:`IdentityCheck` across the two attempts. """ assert step.anchor is not None and step.anchor.context_text + anchor = step.anchor band = identity_mod.band_region( - resolution.point, step.anchor.region[3], self.backend.viewport + resolution.point, anchor.region[3], self.backend.viewport ) + # The recorded band was extracted EXCLUDING the target's own crop + # (labels are mutable evidence the ladder heals through) and + # excluding volatile lines. The live band must mirror both, or + # the target's own label / a live clock cell shows up as + # observed-side tokens the recorded band cannot explain and trips + # the unexplained-name budget on every correct row. The exclude + # region is the anchor crop translated to the RESOLVED point + # (same offset it had from the recorded click point); volatility + # is judged against the replay date — chronology near NOW is + # volatile, a far date (a DOB) is identity evidence, exactly as + # at record time. + exclude = ( + resolution.point[0] + (anchor.region[0] - anchor.click_point[0]), + resolution.point[1] + (anchor.region[1] - anchor.click_point[1]), + anchor.region[2], + anchor.region[3], + ) + today = date.today() def attempt( - png: bytes, region: Optional[Region], point_y: int + png: bytes, + region: Optional[Region], + point_y: int, + exclude_region: Region, ) -> IdentityCheck: - lines = identity_mod.lines_near_point( - self.vision.ocr(png, region=region), point_y - ) - observed = " ".join( - line.text.strip() for line in lines if line.text.strip() - ) + lines = [ + line + for line in self.vision.ocr(png, region=region) + if line.text.strip() + and not identity_mod.regions_intersect( + line.region, exclude_region + ) + and not identity_mod.is_volatile_line( + line.text, reference_date=today + ) + ] + lines = identity_mod.lines_near_point(lines, point_y) + observed = " ".join(line.text.strip() for line in lines) return identity_mod.verify_target_identity( step.anchor.context_text, observed, @@ -538,15 +607,26 @@ def attempt( param_examples=workflow.params, ) - check = attempt(before_png, band, resolution.point[1]) + check = attempt(before_png, band, resolution.point[1], exclude) if check.status == "verified": return check upscaled = identity_mod.upscale_crop(before_png, band) if upscaled is None: return check # In the upscaled crop's coordinate space the point's y is its - # offset from the band origin, times the upscale factor. - retry = attempt(upscaled, None, (resolution.point[1] - band[1]) * 2) + # offset from the band origin, times the upscale factor (and the + # exclude region transforms the same way). + retry = attempt( + upscaled, + None, + (resolution.point[1] - band[1]) * 2, + ( + (exclude[0] - band[0]) * 2, + (exclude[1] - band[1]) * 2, + exclude[2] * 2, + exclude[3] * 2, + ), + ) rank = {"unreadable": 0, "mismatch": 1, "verified": 2} if (rank[retry.status], retry.coverage) > ( rank[check.status], diff --git a/openadapt_flow/validation/__init__.py b/openadapt_flow/validation/__init__.py new file mode 100644 index 0000000..95c435e --- /dev/null +++ b/openadapt_flow/validation/__init__.py @@ -0,0 +1,6 @@ +"""Held-out validation assets for safety-critical matchers. + +Currently: the adversarial identity-band corpus (`adversary_corpus`) and +the ROC evaluation harness for the pre-click identity matcher +(`identity_roc`). See docs/validation/VALIDATION.md for the protocol. +""" diff --git a/openadapt_flow/validation/adversary_corpus.py b/openadapt_flow/validation/adversary_corpus.py new file mode 100644 index 0000000..3eb5f88 --- /dev/null +++ b/openadapt_flow/validation/adversary_corpus.py @@ -0,0 +1,831 @@ +"""Held-out adversarial corpus for the identity band matcher. + +The recurring failure mode of the identity layer has been fixing against +exactly the adversaries that found the last bug (a fixed point, not a +false-negative rate). This module breaks that cycle: a deterministic, +seeded generator of ``(recorded_band, observed_band, label)`` pairs, +``label in {"same_entity", "different_entity"}``, built and FROZEN +**before** the 2026-07-10 matcher change was designed. + +Frozen protocol +--------------- + +1. The generator, ``FROZEN_SEED``, and a hash manifest of the generated + set (``docs/validation/adversary_corpus_manifest.json``) are committed + BEFORE the matcher is evaluated or modified, so post-hoc tuning of the + corpus toward a matcher is detectable in git history. +2. After the first evaluation the generator must not be modified to make + results look better. Genuine generator bugs may be fixed, but must be + disclosed explicitly, and the manifest regenerated in the same commit. +3. ``tests/test_adversary_corpus.py`` regenerates the corpus and fails if + its hash or per-category counts drift from the committed manifest. + +Corpus shape +------------ + +``different_entity`` (the false-accept side — a VERIFIED here is a +wrong-patient action): + +- ``prefix_extension`` — Phil/Philip/Phillipa-class name pairs +- ``single_letter_edit`` — John/Joan-class sibling names +- ``transposition`` — adjacent-letter transposed names +- ``generational_suffix`` — Jr/Sr/II/III/IV on one side only +- ``same_surname_diff_first`` / ``same_first_diff_surname`` +- ``shared_clinical_text`` — different person, identical long + procedure/reason columns (name is a small fraction of the band) +- ``dob_off_by_one_field`` — same name, one DOB field differs +- ``mrn_digit_swap`` — same name+DOB, MRN digits swapped/changed +- ``adjacent_row_mixture`` — the wrong sibling row plus stray tokens + bleeding from adjacent rows + +``same_entity`` (the false-abort side — a MISMATCH here is a $-cost +fallback, not a safety event): OCR noise on the TRUE row — + +- ``ocr_confusion`` — l/1/I, O/0, rn/m, cl/d, 5/s, 2/z class swaps +- ``token_split`` / ``token_join`` +- ``dropped_short_tokens`` — short tokens (<= 3 chars) lost by OCR +- ``case_whitespace`` — case and whitespace jitter +- ``reordered_segments`` — the modal-band permutation class +- ``occlusion`` — dropped leading/trailing tokens +- ``spurious_tokens`` — 1-2 tokens bleeding in from adjacent rows +- ``compound_noise`` — several of the above at once + +A deliberate exclusion, for the record: bare 2-character name prefixes +("Jo" vs "Joan") are not generated — the matcher's token floor makes +2-char tokens verbatim-only evidence and the class is irreducibly +ambiguous at band level; the >= 3-char prefix families cover the sibling +mechanism. + +Different-entity name perturbations are guaranteed NOT to be plausible +OCR misreads of the original: the corpus carries its own frozen copy of +the standard OCR confusion classes (independent of whatever table the +matcher uses, so later matcher changes cannot silently re-shape the +corpus) and rejects perturbations that are confusion-equivalent to the +original — those would be mislabeled pairs, not adversaries. +""" + +from __future__ import annotations + +import argparse +import hashlib +import json +from dataclasses import dataclass +from pathlib import Path +from random import Random +from typing import Callable + +FROZEN_SEED = 20260710 + +# Pairs per generator category (10 different + 9 same categories below): +# >= 2000 pairs per label, as required by the validation protocol. +N_DIFFERENT_PER_CATEGORY = 220 # 10 categories -> 2200 different_entity +N_SAME_PER_CATEGORY = 240 # 9 categories -> 2160 same_entity + +LABEL_SAME = "same_entity" +LABEL_DIFFERENT = "different_entity" + + +@dataclass(frozen=True) +class CorpusPair: + """One adversarial probe: a recorded band vs an observed band.""" + + recorded: str + observed: str + label: str # LABEL_SAME | LABEL_DIFFERENT + category: str + + +# -- frozen OCR-confusion model (corpus-local copy; see module docstring) ---- + +# Character classes a real OCR engine confuses. Used for two things: +# (a) generating same_entity OCR noise, (b) REJECTING different_entity +# name perturbations that would be confusion-equivalent to the original +# (mislabeled data). Deliberately independent of the matcher's table. +_CONFUSION_GROUPS = ("l1i|!", "o0", "s5", "z2", "b8", "g9") +_CONFUSION_MULTI = (("rn", "m"), ("cl", "d"), ("vv", "w")) +_CANON = {} +for _group in _CONFUSION_GROUPS: + for _ch in _group: + _CANON[_ch] = _group[0] + +# Substitutions the same_entity noise generator draws from (raw-text +# forms, case preserved where OCR would see it). +_NOISE_SUBS = ( + ("l", "1"), + ("1", "l"), + ("i", "l"), + ("I", "1"), + ("I", "l"), + ("O", "0"), + ("0", "O"), + ("o", "0"), + ("S", "5"), + ("s", "5"), + ("5", "s"), + ("Z", "2"), + ("z", "2"), + ("B", "8"), + ("g", "9"), + ("rn", "m"), + ("m", "rn"), + ("cl", "d"), + ("d", "cl"), + ("w", "vv"), +) + + +def corpus_canonical(text: str) -> str: + """Frozen confusion-canonical form (corpus-local; lowercased).""" + t = text.lower() + for a, b in _CONFUSION_MULTI: + t = t.replace(a, b) + return "".join(_CANON.get(ch, ch) for ch in t) + + +# -- fixture data ------------------------------------------------------------- + +FIRST_NAMES = [ + "James", "Mary", "Robert", "Patricia", "Michael", "Linda", "David", + "Barbara", "William", "Elizabeth", "Richard", "Susan", "Joseph", + "Jessica", "Thomas", "Sarah", "Charles", "Karen", "Christopher", + "Lisa", "Daniel", "Nancy", "Matthew", "Betty", "Anthony", "Margaret", + "Mark", "Sandra", "Donald", "Ashley", "Steven", "Kimberly", "Paul", + "Emily", "Andrew", "Donna", "Joshua", "Michelle", "Kenneth", "Carol", + "Kevin", "Amanda", "Brian", "Dorothy", "George", "Melissa", "Timothy", + "Deborah", "Ronald", "Stephanie", "Edward", "Rebecca", "Jason", + "Sharon", "Jeffrey", "Laura", "Ryan", "Cynthia", "Jacob", "Kathleen", + "Gary", "Amy", "Nicholas", "Angela", "Eric", "Shirley", "Jonathan", + "Anna", "Stephen", "Brenda", "Larry", "Pamela", "Justin", "Emma", + "Scott", "Nicole", "Brandon", "Helen", "Benjamin", "Samantha", + "Samuel", "Katherine", "Gregory", "Christine", "Alexander", "Debra", + "Patrick", "Rachel", "Frank", "Carolyn", "Raymond", "Janet", "Jack", + "Catherine", "Dennis", "Maria", "Jerry", "Heather", "Tyler", "Diane", + "Aaron", "Ruth", "Jose", "Julie", "Adam", "Olivia", "Nathan", "Joyce", + "Henry", "Virginia", "Douglas", "Victoria", "Zachary", "Kelly", + "Peter", "Lauren", "Kyle", "Christina", "Ethan", "Joan", "Walter", + "Evelyn", +] + +LAST_NAMES = [ + "Smith", "Johnson", "Williams", "Brown", "Jones", "Garcia", "Miller", + "Davis", "Rodriguez", "Martinez", "Hernandez", "Lopez", "Gonzalez", + "Wilson", "Anderson", "Thomas", "Taylor", "Moore", "Jackson", + "Martin", "Lee", "Perez", "Thompson", "White", "Harris", "Sanchez", + "Clark", "Ramirez", "Lewis", "Robinson", "Walker", "Young", "Allen", + "King", "Wright", "Scott", "Torres", "Nguyen", "Hill", "Flores", + "Green", "Adams", "Nelson", "Baker", "Hall", "Rivera", "Campbell", + "Mitchell", "Carter", "Roberts", "Gomez", "Phillips", "Evans", + "Turner", "Diaz", "Parker", "Cruz", "Edwards", "Collins", "Reyes", + "Stewart", "Morris", "Morales", "Murphy", "Cook", "Rogers", + "Gutierrez", "Ortiz", "Morgan", "Cooper", "Peterson", "Bailey", + "Reed", "Kelly", "Howard", "Ramos", "Kim", "Cox", "Ward", "Belford", +] + +# Prefix-extension families: every member >= 3 chars; each shorter member +# is a strict prefix of each longer member it is paired with. +PREFIX_FAMILIES = [ + ("Phil", "Philip", "Phillip", "Phillipa"), + ("Sam", "Samuel", "Samantha"), + ("Dan", "Daniel", "Daniela", "Danielle"), + ("Ben", "Benjamin"), + ("Alex", "Alexander", "Alexandra", "Alexis"), + ("Chris", "Christopher", "Christina", "Christine", "Christian"), + ("Rob", "Robert", "Roberta"), + ("Will", "William"), + ("Kat", "Katherine", "Kathleen"), + ("Kate", "Katelyn"), + ("Joan", "Joanna"), + ("Joseph", "Josephine"), + ("Ann", "Anna", "Anne", "Annette"), + ("Tom", "Tommy"), + ("Matt", "Matthew"), + ("Pat", "Patrick", "Patricia"), + ("Edwin", "Edwina"), + ("Jen", "Jenna", "Jennifer"), + ("Steph", "Stephanie", "Stephen"), + ("Max", "Maxwell", "Maxine"), + ("Gabriel", "Gabriella"), + ("Jack", "Jackson", "Jacklyn"), + ("John", "Johnny", "Johnathan"), + ("Rose", "Rosemary", "Roseanne"), + ("Carl", "Carla", "Carlos"), + ("Mari", "Maria", "Marian", "Marianne"), + ("Don", "Donna", "Donald"), + ("Ray", "Raymond"), + ("Vic", "Victor", "Victoria"), + ("Fred", "Frederick", "Freda"), + ("Nat", "Natalie", "Nathan", "Nathaniel"), + ("Theo", "Theodore", "Theodora"), + ("Gene", "Geneva", "Genevieve"), + ("Lou", "Louis", "Louise", "Louisa"), + ("Art", "Arthur"), + ("Stan", "Stanley"), + ("Marc", "Marcus", "Marcia"), + ("Tim", "Timothy"), + ("Andre", "Andrea", "Andres", "Andrew"), + ("Rich", "Richard"), + ("Deb", "Debra", "Deborah"), + ("Herb", "Herbert"), + ("Cass", "Cassandra", "Cassidy"), + ("Fran", "Frances", "Francine", "Francisco"), + ("Gus", "Gustavo"), + ("Abe", "Abel"), + ("Ron", "Ronald", "Ronnie"), + ("Kim", "Kimberly"), + ("Jess", "Jessica", "Jesse"), + ("Mel", "Melissa", "Melinda", "Melvin"), + ("Cal", "Calvin"), + ("Sal", "Sally", "Salvador"), +] + +# Curated single-letter-edit sibling pairs (edit is NOT an OCR confusion). +EDIT_SIBLING_PAIRS = [ + ("John", "Joan"), + ("Joan", "Jean"), + ("Jane", "June"), + ("Jane", "Jade"), + ("Mark", "Marc"), + ("Mary", "Macy"), + ("Mary", "Mara"), + ("Karen", "Karin"), + ("Jon", "Jan"), + ("Terry", "Kerry"), + ("Harry", "Larry"), + ("Jerry", "Perry"), + ("Rita", "Rina"), + ("Rose", "Rosa"), + ("Gary", "Cary"), + ("Bill", "Will"), + ("Ted", "Tad"), + ("Susan", "Suzan"), + ("Dana", "Dara"), + ("Ellen", "Elden"), +] + +GENERATIONAL_SUFFIXES = ["Jr", "Sr", "II", "III", "IV"] + +PROCEDURES = [ + "Comprehensive metabolic panel with lipid screening", + "Cardiology follow-up consultation and medication review", + "MRI lumbar spine without contrast", + "Annual wellness examination with immunization update", + "Physical therapy evaluation for chronic knee pain", + "Colonoscopy screening with biopsy if indicated", + "Echocardiogram transthoracic complete with doppler", + "Pulmonary function testing pre and post bronchodilator", + "Diabetic retinopathy screening with dilated fundus exam", + "Orthopedic intake for rotator cuff impingement", + "Dermatology full body skin examination", + "Behavioral health intake assessment and treatment plan", + "CT abdomen and pelvis with oral contrast", + "Sleep study polysomnography with CPAP titration", + "Allergy panel testing environmental and food", + "Gastroenterology consult for reflux management", + "Renal function panel with electrolyte monitoring", + "Prenatal visit with fetal heart tone assessment", + "Post operative wound check and suture removal", + "Vaccination influenza and pneumococcal administration", + "Thyroid ultrasound with fine needle aspiration", + "Stress test exercise tolerance with EKG monitoring", + "Hemoglobin A1c and fasting glucose monitoring", + "Bone density DEXA scan hip and spine", + "Urology consult for recurrent kidney stones", + "Neurology evaluation for chronic migraine management", + "Mammogram bilateral screening digital tomosynthesis", + "Hearing evaluation with audiometry and tympanometry", + "Wound care debridement and dressing change", + "Infusion therapy iron sucrose administration", +] + +PRIORITIES = ["High", "Medium", "Low", "Urgent", "Routine", "STAT"] +SEXES = ["M", "F"] + +_ALPHABET = "abcdefghijklmnopqrstuvwxyz" + + +# -- row/band construction ---------------------------------------------------- + + +def _person(rng: Random) -> dict: + year = rng.randint(1930, 2009) + month = rng.randint(1, 12) + day = rng.randint(1, 28) + return { + "first": rng.choice(FIRST_NAMES), + "last": rng.choice(LAST_NAMES), + "dob": f"{year:04d}-{month:02d}-{day:02d}", + "sex": rng.choice(SEXES), + "mrn": rng.choice("ABCDEFGH") + + "".join(str(rng.randint(0, 9)) for _ in range(6)), + "phone": f"555-{rng.randint(100, 999)}-{rng.randint(1000, 9999)}", + } + + +def _band(rng: Random, p: dict, template: int | None = None) -> str: + """Render one EMR-like row band for a person. Deterministic per rng.""" + t = rng.randint(0, 4) if template is None else template + if t == 0: + return f"{p['last']}, {p['first']} {p['dob']} {p['sex']}" + if t == 1: + return ( + f"{p['last']}, {p['first']} {p['dob']} {p['sex']} MRN {p['mrn']}" + ) + if t == 2: + proc = p.get("procedure") or rng.choice(PROCEDURES) + pri = p.get("priority") or rng.choice(PRIORITIES) + return f"{p['first']} {p['last']} {proc} {pri}" + if t == 3: + proc = p.get("procedure") or rng.choice(PROCEDURES) + return f"{p['last']}, {p['first']} {p['mrn']} {proc}" + return f"{p['last']}, {p['first']} {p['dob']} {p['phone']}" + + +def _with_first(p: dict, first: str) -> dict: + q = dict(p) + q["first"] = first + return q + + +# -- noise primitives (same_entity side, also mild noise on wrong rows) ------ + + +def _apply_confusions(text: str, rng: Random, n: int) -> str: + """Apply up to ``n`` OCR character confusions at random positions.""" + out = text + for _ in range(n): + options = [(src, dst) for src, dst in _NOISE_SUBS if src in out] + if not options: + break + src, dst = rng.choice(options) + # replace ONE occurrence, chosen at random + starts = [] + start = out.find(src) + while start != -1: + starts.append(start) + start = out.find(src, start + 1) + pos = rng.choice(starts) + out = out[:pos] + dst + out[pos + len(src):] + return out + + +def _split_token(text: str, rng: Random, times: int = 1) -> str: + tokens = text.split() + for _ in range(times): + idx = [i for i, t in enumerate(tokens) if len(t) >= 4] + if not idx: + break + i = rng.choice(idx) + tok = tokens[i] + cut = rng.randint(2, len(tok) - 2) + tokens[i: i + 1] = [tok[:cut], tok[cut:]] + return " ".join(tokens) + + +def _join_tokens(text: str, rng: Random, times: int = 1) -> str: + tokens = text.split() + for _ in range(times): + if len(tokens) < 2: + break + i = rng.randrange(len(tokens) - 1) + tokens[i: i + 2] = [tokens[i] + tokens[i + 1]] + return " ".join(tokens) + + +def _drop_short_tokens(text: str, rng: Random) -> str: + tokens = text.split() + short = [i for i, t in enumerate(tokens) if len(t) <= 3] + if not short: + return text + n = min(len(short), rng.randint(1, 2)) + drop = set(rng.sample(short, n)) + kept = [t for i, t in enumerate(tokens) if i not in drop] + return " ".join(kept) if kept else text + + +def _case_whitespace_jitter(text: str, rng: Random) -> str: + chars = [] + for ch in text: + if ch.isalpha() and rng.random() < 0.25: + chars.append(ch.upper() if ch.islower() else ch.lower()) + else: + chars.append(ch) + if ch == " " and rng.random() < 0.3: + chars.append(" ") + return "".join(chars) + + +def _reorder_segments(text: str, rng: Random) -> str: + tokens = text.split() + if len(tokens) < 3: + return text + k = rng.randint(2, min(4, len(tokens))) + cuts = sorted(rng.sample(range(1, len(tokens)), k - 1)) + segments = [] + prev = 0 + for c in [*cuts, len(tokens)]: + segments.append(tokens[prev:c]) + prev = c + order = list(range(len(segments))) + while True: + rng.shuffle(order) + if order != sorted(order): + break + return " ".join(" ".join(segments[i]) for i in order) + + +def _occlude(text: str, rng: Random) -> str: + tokens = text.split() + n = rng.randint(1, 2) if len(tokens) > 3 else 1 + if rng.random() < 0.5: + kept = tokens[n:] + else: + kept = tokens[:-n] + return " ".join(kept) if kept else text + + +def _spurious(text: str, rng: Random) -> str: + tokens = text.split() + bleed_src = rng.choice(PROCEDURES).split() + for _ in range(rng.randint(1, 2)): + tok = rng.choice(bleed_src) + tokens.insert(rng.randint(0, len(tokens)), tok) + return " ".join(tokens) + + +def _maybe_mild_noise(text: str, rng: Random, p: float = 0.3) -> str: + """Wrong-sibling rows are read by the same OCR: sometimes noisy too.""" + if rng.random() < p: + return _apply_confusions(text, rng, rng.randint(1, 2)) + return text + + +# -- different_entity name perturbation guards ------------------------------- + + +def _distinct_entities(a: str, b: str) -> bool: + """True when two name strings are NOT confusion-equivalent (a real + sibling pair, not a plausible OCR misread of the same name).""" + return corpus_canonical(a) != corpus_canonical(b) + + +def _random_letter_edit(name: str, rng: Random) -> str | None: + """One-letter substitution that is not an OCR confusion of the + original; None when no valid edit exists.""" + if len(name) < 4: + return None + for _ in range(20): + pos = rng.randrange(1, len(name)) + if not name[pos].isalpha(): + continue + repl = rng.choice(_ALPHABET) + if repl == name[pos].lower(): + continue + variant = name[:pos] + repl + name[pos + 1:] + if _distinct_entities(variant, name): + return variant + return None + + +def _transpose(name: str, rng: Random) -> str | None: + """Adjacent transposition that is not confusion-equivalent.""" + if len(name) < 4: + return None + positions = list(range(len(name) - 1)) + rng.shuffle(positions) + for pos in positions: + a, b = name[pos], name[pos + 1] + if a.lower() == b.lower(): + continue + variant = name[:pos] + b + a + name[pos + 2:] + if _distinct_entities(variant, name): + return variant + return None + + +# -- generators: different_entity --------------------------------------------- + + +def _gen_prefix_extension(rng: Random) -> tuple[str, str]: + family = rng.choice(PREFIX_FAMILIES) + a, b = rng.sample(list(family), 2) + p = _person(rng) + p["procedure"] = rng.choice(PROCEDURES) + p["priority"] = rng.choice(PRIORITIES) + template = rng.randint(0, 4) + recorded = _band(rng, _with_first(p, a), template) + observed = _band(rng, _with_first(p, b), template) + return recorded, _maybe_mild_noise(observed, rng) + + +def _gen_single_letter_edit(rng: Random) -> tuple[str, str]: + if rng.random() < 0.5: + a, b = rng.choice(EDIT_SIBLING_PAIRS) + if rng.random() < 0.5: + a, b = b, a + else: + a = rng.choice(FIRST_NAMES) + b = _random_letter_edit(a, rng) + while b is None: + a = rng.choice(FIRST_NAMES) + b = _random_letter_edit(a, rng) + p = _person(rng) + p["procedure"] = rng.choice(PROCEDURES) + p["priority"] = rng.choice(PRIORITIES) + template = rng.randint(0, 4) + recorded = _band(rng, _with_first(p, a), template) + observed = _band(rng, _with_first(p, b), template) + return recorded, _maybe_mild_noise(observed, rng) + + +def _gen_transposition(rng: Random) -> tuple[str, str]: + a = rng.choice(FIRST_NAMES) + b = _transpose(a, rng) + while b is None: + a = rng.choice(FIRST_NAMES) + b = _transpose(a, rng) + p = _person(rng) + p["procedure"] = rng.choice(PROCEDURES) + p["priority"] = rng.choice(PRIORITIES) + template = rng.randint(0, 4) + recorded = _band(rng, _with_first(p, a), template) + observed = _band(rng, _with_first(p, b), template) + return recorded, _maybe_mild_noise(observed, rng) + + +def _gen_generational_suffix(rng: Random) -> tuple[str, str]: + p = _person(rng) + p["procedure"] = rng.choice(PROCEDURES) + p["priority"] = rng.choice(PRIORITIES) + suffix = rng.choice(GENERATIONAL_SUFFIXES) + q = dict(p) + q["first"] = f"{p['first']} {suffix}" + template = rng.randint(0, 4) + if rng.random() < 0.5: + recorded, observed = _band(rng, p, template), _band(rng, q, template) + else: + recorded, observed = _band(rng, q, template), _band(rng, p, template) + return recorded, _maybe_mild_noise(observed, rng) + + +def _gen_same_surname_diff_first(rng: Random) -> tuple[str, str]: + a, b = rng.sample(FIRST_NAMES, 2) + while not _distinct_entities(a, b): + a, b = rng.sample(FIRST_NAMES, 2) + p = _person(rng) + p["procedure"] = rng.choice(PROCEDURES) + p["priority"] = rng.choice(PRIORITIES) + template = rng.randint(0, 4) + recorded = _band(rng, _with_first(p, a), template) + observed = _band(rng, _with_first(p, b), template) + return recorded, _maybe_mild_noise(observed, rng) + + +def _gen_same_first_diff_surname(rng: Random) -> tuple[str, str]: + la, lb = rng.sample(LAST_NAMES, 2) + while not _distinct_entities(la, lb): + la, lb = rng.sample(LAST_NAMES, 2) + p = _person(rng) + p["procedure"] = rng.choice(PROCEDURES) + p["priority"] = rng.choice(PRIORITIES) + q = dict(p) + q["last"] = lb + p["last"] = la + template = rng.randint(0, 4) + return _band(rng, p, template), _maybe_mild_noise( + _band(rng, q, template), rng + ) + + +def _gen_shared_clinical_text(rng: Random) -> tuple[str, str]: + proc = rng.choice(PROCEDURES) + pri = rng.choice(PRIORITIES) + a, b = _person(rng), _person(rng) + while a["first"] == b["first"] or not _distinct_entities( + f"{a['first']} {a['last']}", f"{b['first']} {b['last']}" + ): + b = _person(rng) + for p in (a, b): + p["procedure"] = proc + p["priority"] = pri + template = rng.choice([2, 3]) + return _band(rng, a, template), _maybe_mild_noise( + _band(rng, b, template), rng + ) + + +def _gen_dob_off_by_one_field(rng: Random) -> tuple[str, str]: + p = _person(rng) + year, month, day = (int(x) for x in p["dob"].split("-")) + field = rng.choice(["year", "month", "day"]) + if field == "year": + year += rng.choice([-1, 1]) + elif field == "month": + month = month + 1 if month < 12 else month - 1 + else: + day = day + 1 if day < 28 else day - 1 + q = dict(p) + q["dob"] = f"{year:04d}-{month:02d}-{day:02d}" + template = rng.choice([0, 1, 4]) + return _band(rng, p, template), _maybe_mild_noise( + _band(rng, q, template), rng + ) + + +def _gen_mrn_digit_swap(rng: Random) -> tuple[str, str]: + p = _person(rng) + digits = list(p["mrn"][1:]) + for _ in range(20): + i = rng.randrange(len(digits) - 1) + if digits[i] != digits[i + 1]: + digits[i], digits[i + 1] = digits[i + 1], digits[i] + break + else: + i = rng.randrange(len(digits)) + digits[i] = str((int(digits[i]) + rng.randint(1, 8)) % 10) + q = dict(p) + q["mrn"] = p["mrn"][0] + "".join(digits) + if q["mrn"] == p["mrn"]: # all-equal-digit MRN: force a digit change + digits[0] = str((int(digits[0]) + 1) % 10) + q["mrn"] = p["mrn"][0] + "".join(digits) + template = rng.choice([1, 3]) + return _band(rng, p, template), _maybe_mild_noise( + _band(rng, q, template), rng + ) + + +def _gen_adjacent_row_mixture(rng: Random) -> tuple[str, str]: + """The wrong sibling row, with stray tokens bleeding from neighbors.""" + proc = rng.choice(PROCEDURES) + pri = rng.choice(PRIORITIES) + a, b = _person(rng), _person(rng) + while a["first"] == b["first"]: + b = _person(rng) + for p in (a, b): + p["procedure"] = proc + p["priority"] = pri + template = rng.choice([2, 3]) + recorded = _band(rng, a, template) + observed = _spurious(_band(rng, b, template), rng) + return recorded, _maybe_mild_noise(observed, rng) + + +# -- generators: same_entity -------------------------------------------------- + + +def _true_row(rng: Random) -> str: + p = _person(rng) + p["procedure"] = rng.choice(PROCEDURES) + p["priority"] = rng.choice(PRIORITIES) + return _band(rng, p) + + +def _gen_ocr_confusion(rng: Random) -> tuple[str, str]: + row = _true_row(rng) + return row, _apply_confusions(row, rng, rng.randint(1, 3)) + + +def _gen_token_split(rng: Random) -> tuple[str, str]: + row = _true_row(rng) + return row, _split_token(row, rng, rng.randint(1, 2)) + + +def _gen_token_join(rng: Random) -> tuple[str, str]: + row = _true_row(rng) + return row, _join_tokens(row, rng, rng.randint(1, 2)) + + +def _gen_dropped_short_tokens(rng: Random) -> tuple[str, str]: + row = _true_row(rng) + return row, _drop_short_tokens(row, rng) + + +def _gen_case_whitespace(rng: Random) -> tuple[str, str]: + row = _true_row(rng) + return row, _case_whitespace_jitter(row, rng) + + +def _gen_reordered_segments(rng: Random) -> tuple[str, str]: + row = _true_row(rng) + return row, _reorder_segments(row, rng) + + +def _gen_occlusion(rng: Random) -> tuple[str, str]: + row = _true_row(rng) + return row, _occlude(row, rng) + + +def _gen_spurious_tokens(rng: Random) -> tuple[str, str]: + row = _true_row(rng) + return row, _spurious(row, rng) + + +def _gen_compound_noise(rng: Random) -> tuple[str, str]: + row = _true_row(rng) + noisy = _apply_confusions(row, rng, rng.randint(1, 2)) + if rng.random() < 0.5: + noisy = _split_token(noisy, rng) + else: + noisy = _join_tokens(noisy, rng) + noisy = _case_whitespace_jitter(noisy, rng) + if rng.random() < 0.3: + noisy = _spurious(noisy, rng) + return row, noisy + + +# -- corpus assembly ---------------------------------------------------------- + +_DIFFERENT_GENERATORS: list[tuple[str, Callable[[Random], tuple[str, str]]]] = [ + ("prefix_extension", _gen_prefix_extension), + ("single_letter_edit", _gen_single_letter_edit), + ("transposition", _gen_transposition), + ("generational_suffix", _gen_generational_suffix), + ("same_surname_diff_first", _gen_same_surname_diff_first), + ("same_first_diff_surname", _gen_same_first_diff_surname), + ("shared_clinical_text", _gen_shared_clinical_text), + ("dob_off_by_one_field", _gen_dob_off_by_one_field), + ("mrn_digit_swap", _gen_mrn_digit_swap), + ("adjacent_row_mixture", _gen_adjacent_row_mixture), +] + +_SAME_GENERATORS: list[tuple[str, Callable[[Random], tuple[str, str]]]] = [ + ("ocr_confusion", _gen_ocr_confusion), + ("token_split", _gen_token_split), + ("token_join", _gen_token_join), + ("dropped_short_tokens", _gen_dropped_short_tokens), + ("case_whitespace", _gen_case_whitespace), + ("reordered_segments", _gen_reordered_segments), + ("occlusion", _gen_occlusion), + ("spurious_tokens", _gen_spurious_tokens), + ("compound_noise", _gen_compound_noise), +] + + +def generate_corpus(seed: int = FROZEN_SEED) -> list[CorpusPair]: + """Generate the full corpus, deterministically, from ``seed``. + + Category order and per-category counts are fixed; every random choice + flows from one ``random.Random(seed)`` stream, so the output is + byte-stable across runs and platforms. + """ + rng = Random(seed) + pairs: list[CorpusPair] = [] + for category, gen in _DIFFERENT_GENERATORS: + for _ in range(N_DIFFERENT_PER_CATEGORY): + recorded, observed = gen(rng) + pairs.append( + CorpusPair(recorded, observed, LABEL_DIFFERENT, category) + ) + for category, gen in _SAME_GENERATORS: + for _ in range(N_SAME_PER_CATEGORY): + recorded, observed = gen(rng) + pairs.append(CorpusPair(recorded, observed, LABEL_SAME, category)) + return pairs + + +def canonical_serialization(pairs: list[CorpusPair]) -> str: + """Stable text form of the corpus, the input to the frozen hash.""" + return "\n".join( + f"{p.label}\t{p.category}\t{p.recorded}\t{p.observed}" for p in pairs + ) + + +def corpus_sha256(pairs: list[CorpusPair]) -> str: + return hashlib.sha256( + canonical_serialization(pairs).encode("utf-8") + ).hexdigest() + + +def build_manifest(pairs: list[CorpusPair], seed: int = FROZEN_SEED) -> dict: + counts: dict[str, dict[str, int]] = {} + for p in pairs: + counts.setdefault(p.label, {}) + counts[p.label][p.category] = counts[p.label].get(p.category, 0) + 1 + return { + "seed": seed, + "n_total": len(pairs), + "sha256": corpus_sha256(pairs), + "counts": counts, + } + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--write-manifest", + type=Path, + default=None, + help="Write the frozen hash manifest JSON to this path.", + ) + args = parser.parse_args() + pairs = generate_corpus() + manifest = build_manifest(pairs) + print(json.dumps(manifest, indent=2)) + if args.write_manifest: + args.write_manifest.parent.mkdir(parents=True, exist_ok=True) + args.write_manifest.write_text( + json.dumps(manifest, indent=2) + "\n", encoding="utf-8" + ) + + +if __name__ == "__main__": + main() diff --git a/openadapt_flow/validation/adversary_corpus_v2.py b/openadapt_flow/validation/adversary_corpus_v2.py new file mode 100644 index 0000000..bae2243 --- /dev/null +++ b/openadapt_flow/validation/adversary_corpus_v2.py @@ -0,0 +1,513 @@ +"""Adversarial corpus v2 — the classes corpus v1 excluded by construction. + +The 2026-07-10 review of PR #16 showed that corpus v1's 0.000% +false-accept headline was partially tautological: v1's labeling rule +treats confusion-equivalent bands as the same entity (it *rejects* +different-entity perturbations that are confusion-equivalent to the +original, calling them "mislabeled"), and it never generates short-token +discriminators, observed-side supersets, or absent-name-token pairs. The +thirteen out-of-corpus reviewer probes (all silent verifies at the +shipped operating point) each belong to one of those excluded classes — +pinned verbatim in ``tests/test_identity_out_of_corpus.py``. + +This module is a VERSIONED EXTENSION: corpus v1 +(:mod:`openadapt_flow.validation.adversary_corpus`) is untouched — its +generator, seed and manifest stay frozen exactly as committed, history +intact. v2 has its own seed and its own SHA manifest +(``docs/validation/adversary_corpus_v2_manifest.json``), committed +BEFORE the redesigned matcher is evaluated on it (same freeze +discipline: the corpus-v2 commit precedes the matcher-fix commit, so +post-hoc tuning of the corpus toward the matcher is detectable in git +history). + +Labels — v2 introduces a THIRD label: + +- ``different_entity`` — a VERIFY here is a wrong-patient action + (false accept). ABORT is correct. +- ``same_entity`` — a VERIFY here is correct; an abort is a false + abort (~$0.10 hybrid fallback / human retry). +- ``indistinguishable`` — the TRUE row misread by a letter-letter OCR + confusion (e.g. true row 'Neil' read as 'Nell'). The band is + *textually identical* to its different-entity twin (a real patient + named Nell), so no band-level matcher can separate them: **ABORT is + the correct outcome for both readings.** Scoring: abort = correct + (a justified abort, NOT a false abort); verify = a false accept for + the different-entity twin. + +``different_entity`` categories (all excluded from v1 by construction): + +- ``confusion_collision_name_only`` — Neil/Nell-class collided names + where the name is the ONLY discriminative token in the band (shared + clinical text, no DOB/MRN) — the true residual-exposure shape. +- ``confusion_collision_ids_differ`` — collided names on realistic + distinct patients: DOB and MRN present and DIFFERENT. +- ``confusion_collision_ids_same`` — the reviewer-probe shape: + collided names with IDENTICAL DOB/MRN (unrealistic — MRNs are + unique — but pinned by the probes and kept measurable). +- ``middle_initial`` — 1-char middle initial changed. +- ``sex_column`` — M/F flipped, all else equal. +- ``two_char_name`` — 2-char first names changed. +- ``superset_appended_name`` — observed appends a middle name. +- ``superset_merged_row`` — observed merges a second row. +- ``superset_title_mention`` — a different row (Dr./message) + that MENTIONS the recorded patient's full band. +- ``absent_name_token`` — the 4-char first name absent + outright, nothing in its place (the run-cap boundary shape). + +``indistinguishable`` category: + +- ``confusion_misread_true_row`` — the true row with ONE + letter-letter confusion (i/l, rn/m, cl/d, w/vv) applied inside a + NAME token. + +``same_entity`` categories (the availability side of the new budgets): + +- ``digit_confusion_true_row`` — digit/symbol-class OCR noise + only (l/1, O/0, 5/s, 2/z, 8/B, 9/g): a human name contains no + digits, so these CANNOT be a different name — must verify. +- ``adjacent_bleed_lowercase`` — 1-2 lowercase mid-procedure + tokens bleeding in from adjacent rows — must verify. +- ``hyphenated_split`` — hyphenated surname split at the + hyphen by OCR segmentation — must verify. + +Confusion-collided variants are generated SYSTEMATICALLY from the +letter-letter members of the frozen confusion table applied over the v1 +name lists, plus the curated realistic pairs from the review. +""" + +from __future__ import annotations + +import argparse +import json +from pathlib import Path +from random import Random +from typing import Callable + +from openadapt_flow.validation.adversary_corpus import ( + FIRST_NAMES, + LAST_NAMES, + PRIORITIES, + PROCEDURES, + CorpusPair, + LABEL_DIFFERENT, + LABEL_SAME, + _band, + _person, + _with_first, + build_manifest, + corpus_canonical, +) + +FROZEN_SEED_V2 = 20260711 + +LABEL_INDISTINGUISHABLE = "indistinguishable" + +# Per-category pair counts (fixed; the manifest pins them). +N_COLLISION = 180 # x3 collision categories +N_DIFFERENT = 150 # x7 remaining different_entity categories +N_INDISTINGUISHABLE = 200 +N_SAME = 150 # x3 same_entity categories + +# Letter-letter members of the frozen OCR confusion table: substitutions +# whose BOTH sides are plausible name characters (no digits, no symbols). +# These — and only these — can turn one real name into another real name +# (Neil->Nell, Marnie->Mamie, Clay->Day); the digit/symbol members +# (l/1, O/0, 5/s, ...) cannot, because human names contain no digits. +LETTER_CONFUSION_SUBS = ( + ("i", "l"), + ("l", "i"), + ("rn", "m"), + ("m", "rn"), + ("cl", "d"), + ("d", "cl"), + ("w", "vv"), + ("vv", "w"), +) + +# Curated realistic collided pairs (reviewer probes + same mechanism). +CURATED_COLLIDED_FIRST = [ + ("Neil", "Nell"), + ("Gail", "Gall"), + ("Marnie", "Mamie"), + ("Arnie", "Amie"), + ("Nella", "Neila"), +] +CURATED_COLLIDED_LAST = [ + ("Clay", "Day"), + ("Clark", "Dark"), +] + +TWO_CHAR_NAMES = ["Al", "Bo", "Cy", "Ed", "Jo", "Lu", "Mo", "Ty", "Vi"] + +# Digit/symbol-class OCR substitutions (raw-text forms) — the noise a +# matcher must keep tolerating, because no name collision is possible. +DIGIT_NOISE_SUBS = ( + ("l", "1"), + ("1", "l"), + ("I", "1"), + ("O", "0"), + ("0", "O"), + ("o", "0"), + ("S", "5"), + ("s", "5"), + ("5", "s"), + ("Z", "2"), + ("z", "2"), + ("B", "8"), + ("g", "9"), +) + +_ALPHABET = "abcdefghijklmnopqrstuvwxyz" + + +# -- collided-name machinery --------------------------------------------------- + + +def letter_confusion_variants(name: str) -> list[str]: + """All single-substitution letter-letter collided variants of a name. + + Systematic application of :data:`LETTER_CONFUSION_SUBS` at every + interior occurrence (the leading capital is left alone — OCR case + behavior there differs and the reviewer probes are interior). Every + variant is confusion-equivalent to the original by construction, + raw-distinct, and purely alphabetic. + """ + variants: list[str] = [] + body = name[1:] + for src, dst in LETTER_CONFUSION_SUBS: + start = 0 + while True: + pos = body.find(src, start) + if pos == -1: + break + variant = name[0] + body[:pos] + dst + body[pos + len(src):] + start = pos + 1 + if variant.lower() == name.lower(): + continue + if not variant.isalpha(): + continue + # Sanity: must remain confusion-equivalent (mislabeling guard + # in the opposite direction from v1 — these pairs MUST be + # canonical-equal, that is the class). + if corpus_canonical(variant) != corpus_canonical(name): + continue + variants.append(variant) + return variants + + +def _collided_first(rng: Random) -> tuple[str, str]: + """A (name, collided_name) first-name pair, curated or systematic.""" + if rng.random() < 0.4: + a, b = rng.choice(CURATED_COLLIDED_FIRST) + if rng.random() < 0.5: + a, b = b, a + return a, b + while True: + name = rng.choice(FIRST_NAMES) + variants = letter_confusion_variants(name) + if variants: + return name, rng.choice(variants) + + +def _collided_last(rng: Random) -> tuple[str, str]: + if rng.random() < 0.4: + a, b = rng.choice(CURATED_COLLIDED_LAST) + if rng.random() < 0.5: + a, b = b, a + return a, b + while True: + name = rng.choice(LAST_NAMES) + variants = letter_confusion_variants(name) + if variants: + return name, rng.choice(variants) + + +# -- generators: different_entity ---------------------------------------------- + + +def _gen_collision_name_only(rng: Random) -> tuple[str, str]: + """Collided name is the ONLY discriminative token: shared clinical + text, no DOB, no MRN — the true residual-exposure shape.""" + p = _person(rng) + p["procedure"] = rng.choice(PROCEDURES) + p["priority"] = rng.choice(PRIORITIES) + if rng.random() < 0.5: + a, b = _collided_first(rng) + recorded = _band(rng, _with_first(p, a), 2) + observed = _band(rng, _with_first(p, b), 2) + else: + a, b = _collided_last(rng) + q = dict(p) + p["last"], q["last"] = a, b + recorded = _band(rng, p, 2) + observed = _band(rng, q, 2) + return recorded, observed + + +def _gen_collision_ids_differ(rng: Random) -> tuple[str, str]: + """Collided names on realistic distinct patients: DOB and MRN both + present and DIFFERENT (MRNs are unique in a real EMR).""" + a, b = _collided_first(rng) + p = _person(rng) + q = _person(rng) # fresh DOB/MRN/phone + q["last"] = p["last"] + while q["dob"] == p["dob"] or q["mrn"] == p["mrn"]: + q = _person(rng) + q["last"] = p["last"] + template = rng.choice([1, 4]) + return ( + _band(rng, _with_first(p, a), template), + _band(rng, _with_first(q, b), template), + ) + + +def _gen_collision_ids_same(rng: Random) -> tuple[str, str]: + """The reviewer-probe shape: identical DOB/MRN, collided name.""" + a, b = _collided_first(rng) + p = _person(rng) + template = rng.choice([0, 1]) + return ( + _band(rng, _with_first(p, a), template), + _band(rng, _with_first(p, b), template), + ) + + +def _distinct_letters(rng: Random) -> tuple[str, str]: + while True: + a, b = rng.sample(_ALPHABET, 2) + if corpus_canonical(a) != corpus_canonical(b): + return a.upper(), b.upper() + + +def _gen_middle_initial(rng: Random) -> tuple[str, str]: + p = _person(rng) + a, b = _distinct_letters(rng) + base = f"{p['last']}, {p['first']} {{}} {p['dob']} {p['sex']}" + return base.format(a), base.format(b) + + +def _gen_sex_column(rng: Random) -> tuple[str, str]: + p = _person(rng) + q = dict(p) + q["sex"] = "F" if p["sex"] == "M" else "M" + template = rng.choice([0, 1]) + return _band(rng, p, template), _band(rng, q, template) + + +def _gen_two_char_name(rng: Random) -> tuple[str, str]: + while True: + a, b = rng.sample(TWO_CHAR_NAMES, 2) + if corpus_canonical(a) != corpus_canonical(b): + break + p = _person(rng) + template = rng.choice([0, 1]) + return ( + _band(rng, _with_first(p, a), template), + _band(rng, _with_first(p, b), template), + ) + + +def _gen_superset_appended_name(rng: Random) -> tuple[str, str]: + p = _person(rng) + middle = rng.choice(FIRST_NAMES) + while middle == p["first"]: + middle = rng.choice(FIRST_NAMES) + q = dict(p) + q["first"] = f"{p['first']} {middle}" + template = rng.choice([0, 1]) + return _band(rng, p, template), _band(rng, q, template) + + +def _gen_superset_merged_row(rng: Random) -> tuple[str, str]: + p = _person(rng) + other = _person(rng) + while other["first"] == p["first"] and other["last"] == p["last"]: + other = _person(rng) + template = rng.choice([0, 1]) + recorded = _band(rng, p, template) + return recorded, f"{recorded} {_band(rng, other, 0)}" + + +def _gen_superset_title_mention(rng: Random) -> tuple[str, str]: + """A different row (a provider line, a message row) that MENTIONS + the recorded patient's full band — cc: lines, message rows.""" + p = _person(rng) + other = _person(rng) + recorded = _band(rng, p, 0) + shape = rng.randrange(3) + if shape == 0: + observed = f"Dr. {other['last']}, {other['first']} re {recorded}" + elif shape == 1: + observed = f"Message from {other['first']} {other['last']} re {recorded}" + else: + observed = f"cc: {other['last']}, {other['first']} {recorded}" + return recorded, observed + + +def _gen_absent_name_token(rng: Random) -> tuple[str, str]: + """The 4-char first name absent outright — sits exactly at the old + uncovered-run cap with the identity token never read.""" + four_char = [n for n in FIRST_NAMES if len(n) == 4] + p = _person(rng) + p["first"] = rng.choice(four_char) + recorded = f"{p['last']}, {p['first']} {p['dob']} {p['sex']}" + observed = f"{p['last']}, {p['dob']} {p['sex']}" + return recorded, observed + + +# -- generators: indistinguishable ---------------------------------------------- + + +def _gen_confusion_misread_true_row(rng: Random) -> tuple[str, str]: + """The TRUE row, with one letter-letter confusion inside a name + token: textually identical to a collided different-entity pair, so + ABORT is the correct outcome for both readings.""" + if rng.random() < 0.5: + a, b = _collided_first(rng) + p = _person(rng) + p["procedure"] = rng.choice(PROCEDURES) + p["priority"] = rng.choice(PRIORITIES) + template = rng.randint(0, 4) + return ( + _band(rng, _with_first(p, a), template), + _band(rng, _with_first(p, b), template), + ) + a, b = _collided_last(rng) + p = _person(rng) + p["procedure"] = rng.choice(PROCEDURES) + p["priority"] = rng.choice(PRIORITIES) + q = dict(p) + p["last"], q["last"] = a, b + template = rng.randint(0, 4) + return _band(rng, p, template), _band(rng, q, template) + + +# -- generators: same_entity ----------------------------------------------------- + + +def _apply_digit_noise(text: str, rng: Random, n: int) -> str: + out = text + applied = 0 + for _ in range(n * 4): + if applied >= n: + break + options = [(s, d) for s, d in DIGIT_NOISE_SUBS if s in out] + if not options: + break + src, dst = rng.choice(options) + starts = [] + start = out.find(src) + while start != -1: + starts.append(start) + start = out.find(src, start + 1) + pos = rng.choice(starts) + out = out[:pos] + dst + out[pos + len(src):] + applied += 1 + return out + + +def _gen_digit_confusion_true_row(rng: Random) -> tuple[str, str]: + p = _person(rng) + p["procedure"] = rng.choice(PROCEDURES) + p["priority"] = rng.choice(PRIORITIES) + row = _band(rng, p) + noisy = _apply_digit_noise(row, rng, rng.randint(1, 2)) + return row, noisy + + +def _gen_adjacent_bleed_lowercase(rng: Random) -> tuple[str, str]: + """1-2 lowercase mid-procedure tokens bleeding in from an adjacent + row: the legitimate spurious-token class the unexplained-observed + budget must not kill.""" + p = _person(rng) + p["procedure"] = rng.choice(PROCEDURES) + p["priority"] = rng.choice(PRIORITIES) + row = _band(rng, p) + tokens = row.split() + bleed_pool = [ + w for w in rng.choice(PROCEDURES).split() if w.islower() and len(w) >= 3 + ] + for _ in range(rng.randint(1, 2)): + tokens.insert(rng.randint(0, len(tokens)), rng.choice(bleed_pool)) + return row, " ".join(tokens) + + +def _gen_hyphenated_split(rng: Random) -> tuple[str, str]: + l1, l2 = rng.sample(LAST_NAMES, 2) + p = _person(rng) + p["last"] = f"{l1}-{l2}" + template = rng.choice([0, 1]) + recorded = _band(rng, p, template) + observed = recorded.replace(f"{l1}-{l2}", f"{l1}- {l2}", 1) + return recorded, observed + + +# -- corpus assembly ------------------------------------------------------------- + +_V2_GENERATORS: list[ + tuple[str, str, int, Callable[[Random], tuple[str, str]]] +] = [ + (LABEL_DIFFERENT, "confusion_collision_name_only", N_COLLISION, + _gen_collision_name_only), + (LABEL_DIFFERENT, "confusion_collision_ids_differ", N_COLLISION, + _gen_collision_ids_differ), + (LABEL_DIFFERENT, "confusion_collision_ids_same", N_COLLISION, + _gen_collision_ids_same), + (LABEL_DIFFERENT, "middle_initial", N_DIFFERENT, _gen_middle_initial), + (LABEL_DIFFERENT, "sex_column", N_DIFFERENT, _gen_sex_column), + (LABEL_DIFFERENT, "two_char_name", N_DIFFERENT, _gen_two_char_name), + (LABEL_DIFFERENT, "superset_appended_name", N_DIFFERENT, + _gen_superset_appended_name), + (LABEL_DIFFERENT, "superset_merged_row", N_DIFFERENT, + _gen_superset_merged_row), + (LABEL_DIFFERENT, "superset_title_mention", N_DIFFERENT, + _gen_superset_title_mention), + (LABEL_DIFFERENT, "absent_name_token", N_DIFFERENT, + _gen_absent_name_token), + (LABEL_INDISTINGUISHABLE, "confusion_misread_true_row", + N_INDISTINGUISHABLE, _gen_confusion_misread_true_row), + (LABEL_SAME, "digit_confusion_true_row", N_SAME, + _gen_digit_confusion_true_row), + (LABEL_SAME, "adjacent_bleed_lowercase", N_SAME, + _gen_adjacent_bleed_lowercase), + (LABEL_SAME, "hyphenated_split", N_SAME, _gen_hyphenated_split), +] + + +def generate_corpus_v2(seed: int = FROZEN_SEED_V2) -> list[CorpusPair]: + """Generate corpus v2, deterministically, from ``seed``. + + Category order and per-category counts are fixed; every random + choice flows from one ``random.Random(seed)`` stream, so the output + is byte-stable across runs and platforms. + """ + rng = Random(seed) + pairs: list[CorpusPair] = [] + for label, category, count, gen in _V2_GENERATORS: + for _ in range(count): + recorded, observed = gen(rng) + pairs.append(CorpusPair(recorded, observed, label, category)) + return pairs + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--write-manifest", + type=Path, + default=None, + help="Write the frozen v2 hash manifest JSON to this path.", + ) + args = parser.parse_args() + pairs = generate_corpus_v2() + manifest = build_manifest(pairs, seed=FROZEN_SEED_V2) + print(json.dumps(manifest, indent=2)) + if args.write_manifest: + args.write_manifest.parent.mkdir(parents=True, exist_ok=True) + args.write_manifest.write_text( + json.dumps(manifest, indent=2) + "\n", encoding="utf-8" + ) + + +if __name__ == "__main__": + main() diff --git a/openadapt_flow/validation/adversary_corpus_v3.py b/openadapt_flow/validation/adversary_corpus_v3.py new file mode 100644 index 0000000..215ee98 --- /dev/null +++ b/openadapt_flow/validation/adversary_corpus_v3.py @@ -0,0 +1,189 @@ +"""Adversarial corpus v3 — identifier letter/digit collisions. + +The 2026-07-10 SECOND review of PR #16 found a 5th wrong-patient P0 +reopening (see ``tests/test_identity_out_of_corpus.py``, +``TestBlocker5*``): the round-3 suspect budget guarded NAME tokens only, +so an alphanumeric identifier (MRN, account number) differing only by a +letter/digit-confusable character (l/1, O/0, S/5, Z/2, B/8, g/9) between +two DIFFERENT patients canonicalized equal and silently verified — while +corpus v1's ``mrn_digit_swap`` class only ever swapped/changed DIGITS +(748291 vs 748292), which are never in one confusion class, so it could +not surface the letter/digit hole. + +This module is a VERSIONED EXTENSION, same discipline as v2: corpora v1 +and v2 are untouched (their generators, seeds and manifests stay frozen, +history intact); v3 has its own seed and its own SHA manifest +(``docs/validation/adversary_corpus_v3_manifest.json``), committed BEFORE +the identifier-suspect matcher change is evaluated on it (the corpus-v3 +commit precedes the matcher-fix commit in git history). + +Single class, ``different_entity``: + +- ``id_letter_digit_collision`` — two entities identical in every token + EXCEPT an alphanumeric identifier that differs by exactly one + letter/digit-confusable position, generated systematically from the + frozen letter/digit confusion pairs. A VERIFY here is a wrong-patient + action: the identifier is the sole thing distinguishing the two rows, + and it is exactly what MRN-based disambiguation relies on. ABORT is + the only safe outcome (the true-row-OCR-noise reading is + indistinguishable at band level, so it is charged to availability — + see docs/LIMITS.md and the identifier-suspect rule in + runtime.identity). + +The corpus deliberately does NOT add a same-entity identifier-noise +class: under the chosen safety-first design ALL confusion-differing +recorded identifiers abort, so a same-entity label would be unwinnable +by construction (the availability cost is measured directly on v2's +``digit_confusion_true_row`` class and reported in IDENTITY_ROC.md). +""" + +from __future__ import annotations + +import argparse +import json +from pathlib import Path +from random import Random +from typing import Callable + +from openadapt_flow.validation.adversary_corpus import ( + PROCEDURES, + CorpusPair, + LABEL_DIFFERENT, + _person, + build_manifest, +) + +FROZEN_SEED_V3 = 20260712 + +N_COLLISION = 300 + +# Letter/digit confusion pairs (the character classes that mix a letter +# and a digit — the exact hole). Each pair (letter, digit) can OCR either +# way; the generator uses both directions. +LETTER_DIGIT_PAIRS = ( + ("l", "1"), + ("i", "1"), + ("o", "0"), + ("s", "5"), + ("z", "2"), + ("b", "8"), + ("g", "9"), +) + +DEPARTMENTS = [ + "Cardiology", + "Neurology", + "Billing", + "Oncology", + "Radiology", + "Orthopedics", + "Dermatology", + "Pediatrics", + "Nephrology", + "Endocrinology", +] + +ID_LABELS = ["MRN", "Acct", "ID", "Chart", "Ref"] + +_ID_ALPHABET = "ACDEFHJKMNPRTUVWXY" # unambiguous prefix letters +_ID_DIGITS = "0123456789" + + +def _make_identifier(rng: Random) -> str: + """A realistic alphanumeric identifier: optional leading letter then + 5-6 digits (MRN/account shape).""" + body = "".join(rng.choice(_ID_DIGITS) for _ in range(rng.randint(5, 6))) + if rng.random() < 0.6: + return rng.choice(_ID_ALPHABET) + body + return body + + +def _confusable_variant(identifier: str, rng: Random) -> str | None: + """Flip exactly one position of ``identifier`` across a letter/digit + confusion pair, so the result canonicalizes equal but is raw-unequal + (a plausible OCR misread of a DIFFERENT real identifier). None when + no confusable position exists.""" + positions = list(range(len(identifier))) + rng.shuffle(positions) + for pos in positions: + ch = identifier[pos].lower() + for a, b in LETTER_DIGIT_PAIRS: + if ch == a: + repl = b + elif ch == b: + repl = a + else: + continue + variant = identifier[:pos] + repl + identifier[pos + 1:] + if variant != identifier: + return variant + return None + + +def _row_template(rng: Random, p: dict, label: str) -> str: + """An EMR-like row with a ``{id}`` placeholder for the identifier. + + Rendered ONCE per pair and formatted with each of the two + identifiers, so the two rows differ in the identifier token and + NOTHING else — the identifier is the sole discriminator by + construction (a different shape/dept/procedure on each side would be + a second difference and defeat the class).""" + shape = rng.randrange(3) + if shape == 0: + return f"{p['last']} {p['first']} {label} {{id}} {p['dept']}" + if shape == 1: + return f"{p['last']}, {p['first']} {p['dob']} {label} {{id}}" + return f"{p['last']}, {p['first']} {label} {{id}} {p['proc']}" + + +def _gen_id_letter_digit_collision(rng: Random) -> tuple[str, str]: + p = _person(rng) + p["dept"] = rng.choice(DEPARTMENTS) + p["proc"] = rng.choice(PROCEDURES) + label = rng.choice(ID_LABELS) + while True: + identifier = _make_identifier(rng) + variant = _confusable_variant(identifier, rng) + if variant is not None: + break + if rng.random() < 0.5: + identifier, variant = variant, identifier + template = _row_template(rng, p, label) + return template.format(id=identifier), template.format(id=variant) + + +_V3_GENERATORS: list[ + tuple[str, str, int, Callable[[Random], tuple[str, str]]] +] = [ + (LABEL_DIFFERENT, "id_letter_digit_collision", N_COLLISION, + _gen_id_letter_digit_collision), +] + + +def generate_corpus_v3(seed: int = FROZEN_SEED_V3) -> list[CorpusPair]: + """Generate corpus v3, deterministically, from ``seed``.""" + rng = Random(seed) + pairs: list[CorpusPair] = [] + for label, category, count, gen in _V3_GENERATORS: + for _ in range(count): + recorded, observed = gen(rng) + pairs.append(CorpusPair(recorded, observed, label, category)) + return pairs + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--write-manifest", type=Path, default=None) + args = parser.parse_args() + pairs = generate_corpus_v3() + manifest = build_manifest(pairs, seed=FROZEN_SEED_V3) + print(json.dumps(manifest, indent=2)) + if args.write_manifest: + args.write_manifest.parent.mkdir(parents=True, exist_ok=True) + args.write_manifest.write_text( + json.dumps(manifest, indent=2) + "\n", encoding="utf-8" + ) + + +if __name__ == "__main__": + main() diff --git a/openadapt_flow/validation/identity_roc.py b/openadapt_flow/validation/identity_roc.py new file mode 100644 index 0000000..2ae8223 --- /dev/null +++ b/openadapt_flow/validation/identity_roc.py @@ -0,0 +1,949 @@ +"""ROC evaluation of the identity band matcher on the frozen corpora. + +Sweeps the matcher's decision parameters over the held-out adversarial +corpora — v1 (:mod:`~openadapt_flow.validation.adversary_corpus`, 4360 +pairs, frozen 2026-07-10 before the first rebuild) plus v2 +(:mod:`~openadapt_flow.validation.adversary_corpus_v2`, 2240 pairs, +frozen 2026-07-10 before the out-of-corpus redesign) — and reports the +false-accept / false-abort trade-off: + +- **false accept** — a ``different_entity`` pair VERIFIED (wrong-patient + write: catastrophic), or an ``indistinguishable`` pair VERIFIED (the + band is textually identical to a real different-entity twin, so a + verify is a false accept for the twin). +- **false abort** — a ``same_entity`` pair not verified: one + hybrid-fallback escalation (~$0.10) or a human retry. +- **justified abort** — an ``indistinguishable`` pair not verified: the + correct outcome for both readings of the band. Reported separately; + never counted as a false abort. + +SELECTION-BIAS DISCLOSURE, stated plainly: the operating point is chosen +on the SAME corpora that produce the headline numbers. The corpora were +frozen before the matcher changes they evaluate (detectable in git +history), which prevents tuning the corpus toward the matcher — it does +not prevent the operating point from being fit to these corpora. Every +zero below is "zero on corpus v1+v2 plus the out-of-corpus probe set", +not "zero in the world"; corpus v1's own zero was shown partially +tautological by the 2026-07-10 review, which is why v2 and the probe +set exist. + +Outputs (committed under docs/validation/): ``identity_roc.png``, +``IDENTITY_ROC.md`` (tables + the chosen operating point with +rationale, occlusion recount, realistic-exposure analysis), +``identity_roc.json`` (raw sweep numbers). + +The LEGACY matcher evaluated for the before-curve is a frozen verbatim +copy of the pre-2026-07-10 ``band_match`` (verbatim / 0.8-containment / +0.7-similarity tiers) — the implementation that verified Phil/Philip, +John/Joan and Jr/Sr sibling rows (the third wrong-patient reopening). + +Run: ``python -m openadapt_flow.validation.identity_roc --out docs/validation`` +""" + +from __future__ import annotations + +import argparse +import difflib +import json +from dataclasses import dataclass +from pathlib import Path + +from openadapt_flow.runtime.identity import ( + ABSENT_NAME_TOKEN_CAP, + CONTRADICTED_CHARS_CAP, + CONTRADICTION_SIM, + COVERAGE_THRESHOLD, + MIN_BLOCK, + SUSPECT_CHARS_CAP, + UNCOVERED_RUN_CAP, + UNEXPLAINED_NAME_TOKENS_CAP, + BandMatch, + band_match, + longest_run, + ocr_canonical, + squash, + tokenize, +) +from openadapt_flow.validation.adversary_corpus import ( + LABEL_DIFFERENT, + LABEL_SAME, + CorpusPair, + generate_corpus, +) +from openadapt_flow.validation.adversary_corpus_v2 import ( + LABEL_INDISTINGUISHABLE, + generate_corpus_v2, +) +from openadapt_flow.validation.adversary_corpus_v3 import generate_corpus_v3 + +BIG = 10**9 # "budget disabled" sentinel in the sweep grids + +# -- sweep grids ---------------------------------------------------------------- + +SIM_GRID = (0.62, 0.75) +COVERAGE_GRID = (0.70, 0.75, 0.80, 0.85, 0.90) +RUN_CAP_GRID = (2, 3, 4, 6, 8) +CONTRA_CAP_GRID = (0, 2, BIG) +SUSPECT_CAP_GRID = (0, BIG) +NAME_CAP_GRID = (0, 1, BIG) +ALPHA_CAP_GRID = (3, BIG) + +# The production operating point (must mirror runtime.identity constants; +# pinned by tests/test_identity.py boundary tests). +OPERATING_POINT = { + "contradiction_sim": CONTRADICTION_SIM, + "coverage_threshold": COVERAGE_THRESHOLD, + "uncovered_run_cap": UNCOVERED_RUN_CAP, + "contradicted_chars_cap": CONTRADICTED_CHARS_CAP, + "suspect_chars_cap": SUSPECT_CHARS_CAP, + "unexplained_name_tokens_cap": UNEXPLAINED_NAME_TOKENS_CAP, + "absent_name_token_cap": ABSENT_NAME_TOKEN_CAP, +} + +# The decision the PRE-redesign matcher shipped with (new budgets off): +# used for the occlusion recount and before/after comparisons. +SHIPPED_CAPS = dict( + coverage=COVERAGE_THRESHOLD, + run_cap=UNCOVERED_RUN_CAP, + contra_cap=CONTRADICTED_CHARS_CAP, + suspect_cap=BIG, + name_cap=BIG, + alpha_cap=BIG, +) + +PRODUCTION_CAPS = dict( + coverage=OPERATING_POINT["coverage_threshold"], + run_cap=OPERATING_POINT["uncovered_run_cap"], + contra_cap=OPERATING_POINT["contradicted_chars_cap"], + suspect_cap=OPERATING_POINT["suspect_chars_cap"], + name_cap=OPERATING_POINT["unexplained_name_tokens_cap"], + alpha_cap=OPERATING_POINT["absent_name_token_cap"], +) + + +# -- frozen legacy matcher (pre-2026-07-10), for the before-curve --------------- + + +def _legacy_token_matched( + token: str, hay_squashed: str, hay_tokens: list[str] +) -> bool: + """Verbatim / containment(0.8-run) / similarity(0.7) tiers, verbatim + copy of the matcher that shipped with feat/fix-wrong-actions.""" + if token in hay_tokens: + return True + if len(token) >= MIN_BLOCK: + need = max(MIN_BLOCK, -(-len(token) * 4 // 5)) # ceil(0.8 * len) + if longest_run(token, hay_squashed) >= need: + return True + for observed in hay_tokens: + if len(observed) < MIN_BLOCK: + continue + ratio = difflib.SequenceMatcher( + None, token, observed, autojunk=False + ).ratio() + if ratio >= 0.7: + return True + return False + + +def legacy_band_match(expected_text: str, observed_text: str) -> BandMatch: + """The pre-2026-07-10 band matcher (all new-budget fields 0).""" + expected_tokens = tokenize(expected_text) + if not expected_tokens: + return BandMatch(0.0, 0, 0) + hay_squashed = squash(observed_text) + hay_tokens = tokenize(observed_text) + matched_chars = 0 + total_chars = 0 + uncovered_runs: list[int] = [] + current_run = 0 + for token in expected_tokens: + total_chars += len(token) + if hay_squashed and _legacy_token_matched( + token, hay_squashed, hay_tokens + ): + matched_chars += len(token) + if current_run: + uncovered_runs.append(current_run) + current_run = 0 + else: + current_run += len(token) + if current_run: + uncovered_runs.append(current_run) + return BandMatch( + matched_chars / total_chars, max(uncovered_runs, default=0), 0 + ) + + +# -- evaluation ------------------------------------------------------------------- + + +@dataclass(frozen=True) +class SweepPoint: + matcher: str # "current" | "legacy" + contradiction_sim: float | None + coverage_threshold: float + uncovered_run_cap: int + contradicted_chars_cap: int + suspect_chars_cap: int + unexplained_name_tokens_cap: int + absent_name_token_cap: int + false_accept: float # fraction of different+indistinguishable VERIFIED + false_abort: float # fraction of same_entity NOT verified + justified_abort: float # fraction of indistinguishable NOT verified + + def as_dict(self) -> dict: + return { + "matcher": self.matcher, + "contradiction_sim": self.contradiction_sim, + "coverage_threshold": self.coverage_threshold, + "uncovered_run_cap": self.uncovered_run_cap, + "contradicted_chars_cap": self.contradicted_chars_cap, + "suspect_chars_cap": self.suspect_chars_cap, + "unexplained_name_tokens_cap": self.unexplained_name_tokens_cap, + "absent_name_token_cap": self.absent_name_token_cap, + "false_accept": self.false_accept, + "false_abort": self.false_abort, + "justified_abort": self.justified_abort, + } + + +def _decide( + m: BandMatch, + *, + coverage: float, + run_cap: int, + contra_cap: int, + suspect_cap: int = BIG, + name_cap: int = BIG, + alpha_cap: int = BIG, +) -> bool: + return ( + m.coverage >= coverage + and m.max_uncovered_run <= run_cap + and m.contradicted_chars <= contra_cap + and m.suspect_chars <= suspect_cap + and m.unexplained_name_tokens <= name_cap + and m.max_absent_alpha_token <= alpha_cap + ) + + +def _rates( + pairs: list[CorpusPair], stats: list[BandMatch], **caps +) -> tuple[float, float, float]: + fa = fa_n = ab = ab_n = ja = ja_n = 0 + for pair, m in zip(pairs, stats): + verified = _decide(m, **caps) + if pair.label == LABEL_SAME: + ab_n += 1 + ab += not verified + else: + fa_n += 1 + fa += verified + if pair.label == LABEL_INDISTINGUISHABLE: + ja_n += 1 + ja += not verified + return ( + (fa / fa_n) if fa_n else 0.0, + (ab / ab_n) if ab_n else 0.0, + (ja / ja_n) if ja_n else 0.0, + ) + + +def sweep(pairs: list[CorpusPair]) -> list[SweepPoint]: + """Full decision-parameter sweep for both matchers on v1+v2.""" + points: list[SweepPoint] = [] + for sim in SIM_GRID: + stats = [ + band_match(p.recorded, p.observed, contradiction_sim=sim) + for p in pairs + ] + for coverage in COVERAGE_GRID: + for run_cap in RUN_CAP_GRID: + for contra_cap in CONTRA_CAP_GRID: + for suspect_cap in SUSPECT_CAP_GRID: + for name_cap in NAME_CAP_GRID: + for alpha_cap in ALPHA_CAP_GRID: + fa, ab, ja = _rates( + pairs, + stats, + coverage=coverage, + run_cap=run_cap, + contra_cap=contra_cap, + suspect_cap=suspect_cap, + name_cap=name_cap, + alpha_cap=alpha_cap, + ) + points.append( + SweepPoint( + "current", sim, coverage, run_cap, + contra_cap, suspect_cap, name_cap, + alpha_cap, fa, ab, ja, + ) + ) + legacy_stats = [legacy_band_match(p.recorded, p.observed) for p in pairs] + for coverage in COVERAGE_GRID: + for run_cap in RUN_CAP_GRID: + fa, ab, ja = _rates( + pairs, legacy_stats, coverage=coverage, run_cap=run_cap, + contra_cap=BIG, + ) + points.append( + SweepPoint( + "legacy", None, coverage, run_cap, BIG, BIG, BIG, BIG, + fa, ab, ja, + ) + ) + return points + + +def per_category( + pairs: list[CorpusPair], match_fn, caps: dict +) -> dict[str, dict[str, float]]: + """Per-generator-category error rates at a given decision.""" + counts: dict[tuple[str, str], list[int]] = {} + for p in pairs: + m = match_fn(p.recorded, p.observed) + verified = _decide(m, **caps) + wrong = (not verified) if p.label == LABEL_SAME else verified + n, w = counts.setdefault((p.label, p.category), [0, 0]) + counts[(p.label, p.category)] = [n + 1, w + wrong] + out: dict[str, dict[str, float]] = {} + for (label, category), (n, wrong) in sorted(counts.items()): + out.setdefault(label, {})[category] = wrong / n + return out + + +def pareto(points: list[SweepPoint]) -> list[SweepPoint]: + """Non-dominated frontier (lower is better on both axes).""" + frontier = [] + for p in points: + if not any( + (q.false_accept <= p.false_accept + and q.false_abort <= p.false_abort + and (q.false_accept < p.false_accept + or q.false_abort < p.false_abort)) + for q in points + ): + frontier.append(p) + return sorted(frontier, key=lambda p: (p.false_accept, p.false_abort)) + + +# -- targeted analyses --------------------------------------------------------- + + +def occlusion_recount(v1_pairs: list[CorpusPair]) -> dict: + """Recount of the occlusion false-aborts (2026-07-10 review): how + many aborted bands still had BOTH name tokens readable? + + The earlier IDENTITY_ROC.md framed occlusion aborts as "bands whose + identity tokens were not read at all — refusing is the correct + epistemic outcome". The reviewer measured that roughly half of them + still had both name tokens readable and aborted on trailing DOB/MRN + loss instead. This recount reproduces that measurement: the v1 + occlusion generator drops leading OR trailing tokens of a band whose + first two tokens are always the name, so name readability is + checked by canonical token presence. + """ + def names_readable(p: CorpusPair) -> bool: + name_tokens = tokenize(" ".join(p.recorded.split()[:2])) + obs_c = {ocr_canonical(t) for t in tokenize(p.observed)} + return all(ocr_canonical(t) in obs_c for t in name_tokens) + + out = {} + for tag, caps in (("shipped", SHIPPED_CAPS), ("production", PRODUCTION_CAPS)): + aborts = names_ok = 0 + for p in v1_pairs: + if p.label != LABEL_SAME or p.category != "occlusion": + continue + m = band_match(p.recorded, p.observed) + if _decide(m, **caps): + continue + aborts += 1 + names_ok += names_readable(p) + out[tag] = {"aborts": aborts, "aborts_with_both_names_readable": names_ok} + return out + + +def realistic_exposure( + v2_pairs: list[CorpusPair], v3_pairs: list[CorpusPair] +) -> dict: + """Exposure analysis: what catches each collision class when the + SUSPECT rule is disabled, isolating what the suspect rule alone + defends. Name-collision classes (v2) and the identifier letter/digit + collision class (v3, the 5th reopening) are measured together — the + identifier row is exactly the 'name is the only discriminative token' + shape one level deeper: an MRN whose confusion twin is a different + real patient, with everything else raw-equal, is caught ONLY by the + suspect rule (now extended to identifiers).""" + no_suspect = dict(PRODUCTION_CAPS) + no_suspect["suspect_cap"] = BIG + out = {} + sources = { + "confusion_collision_name_only": v2_pairs, + "confusion_collision_ids_differ": v2_pairs, + "confusion_collision_ids_same": v2_pairs, + "id_letter_digit_collision": v3_pairs, + } + for category, src in sources.items(): + subset = [p for p in src if p.category == category] + n = len(subset) + fa_full = sum( + _decide(band_match(p.recorded, p.observed), **PRODUCTION_CAPS) + for p in subset + ) + fa_wo_suspect = sum( + _decide(band_match(p.recorded, p.observed), **no_suspect) + for p in subset + ) + out[category] = { + "n": n, + "false_accepts_at_production": fa_full, + "false_accepts_without_suspect_rule": fa_wo_suspect, + } + return out + + +# -- outputs -------------------------------------------------------------------- + + +def render_chart(points: list[SweepPoint], out_png: Path) -> None: + import matplotlib + + matplotlib.use("Agg") + import matplotlib.pyplot as plt + + current = [p for p in points if p.matcher == "current"] + legacy = [p for p in points if p.matcher == "legacy"] + fig, ax = plt.subplots(figsize=(8, 6)) + ax.scatter( + [p.false_accept * 100 for p in legacy], + [p.false_abort * 100 for p in legacy], + s=28, marker="x", color="#c0392b", alpha=0.8, + label="legacy matcher (containment + 0.7-similarity tiers)", + ) + ax.scatter( + [p.false_accept * 100 for p in current], + [p.false_abort * 100 for p in current], + s=16, marker="o", color="#2c7fb8", alpha=0.35, + label="redesigned matcher (name+identifier suspect, 2026-07-10)", + ) + front = pareto(current) + ax.plot( + [p.false_accept * 100 for p in front], + [p.false_abort * 100 for p in front], + color="#2c7fb8", linewidth=1.2, alpha=0.9, zorder=3, + ) + op = _op_point(points) + ax.scatter( + [op.false_accept * 100], [op.false_abort * 100], + s=180, marker="*", color="#1a9850", zorder=4, + label=( + "chosen operating point " + f"(FA {op.false_accept:.2%}, FAbort {op.false_abort:.1%})" + ), + ) + ax.set_xlabel( + "false-accept rate, % (different/indistinguishable VERIFIED — " + "wrong-patient click)" + ) + ax.set_ylabel("false-abort rate, % (same entity refused — $0.10 fallback)") + ax.set_title( + "Identity band matcher on frozen corpora v1+v2+v3 " + "(6900 pairs, seeds 20260710/11/12)" + ) + ax.set_xscale("symlog", linthresh=0.1) + ax.grid(True, alpha=0.3) + ax.legend(loc="upper right", fontsize=8) + fig.tight_layout() + fig.savefig(out_png, dpi=140) + plt.close(fig) + + +def _matches_op(p: SweepPoint) -> bool: + return ( + p.matcher == "current" + and p.contradiction_sim == OPERATING_POINT["contradiction_sim"] + and p.coverage_threshold == OPERATING_POINT["coverage_threshold"] + and p.uncovered_run_cap == OPERATING_POINT["uncovered_run_cap"] + and p.contradicted_chars_cap + == OPERATING_POINT["contradicted_chars_cap"] + and p.suspect_chars_cap == OPERATING_POINT["suspect_chars_cap"] + and p.unexplained_name_tokens_cap + == OPERATING_POINT["unexplained_name_tokens_cap"] + and p.absent_name_token_cap + == OPERATING_POINT["absent_name_token_cap"] + ) + + +def _op_point(points: list[SweepPoint]) -> SweepPoint: + return next(p for p in points if _matches_op(p)) + + +def _find_current(points, **kw): + for p in points: + if p.matcher != "current": + continue + if all(getattr(p, k) == v for k, v in kw.items()): + return p + raise KeyError(kw) + + +def _cap_str(v: int) -> str: + return "off" if v >= BIG else str(v) + + +def _corner_paragraph(points: list[SweepPoint]) -> str: + """Why the minimum-false-abort zero-FA Pareto corner was rejected.""" + zero_fa = [ + p for p in points + if p.matcher == "current" and p.false_accept == 0.0 + and not _matches_op(p) + ] + if not zero_fa: + return ( + "No other zero-false-accept point exists on the sweep grid: " + "the operating point is the unique zero-FA corner." + ) + corner = min(zero_fa, key=lambda p: p.false_abort) + op = _op_point(points) + return ( + f"**Why not the cheaper zero-FA corner** (`coverage " + f"{corner.coverage_threshold} / run_cap " + f"{corner.uncovered_run_cap} / absent-name cap " + f"{_cap_str(corner.absent_name_token_cap)}`, FAbort " + f"{corner.false_abort:.2%} vs {op.false_abort:.2%}): that " + "corner disables the absent-name budget and relies on the " + f"coverage threshold ({corner.coverage_threshold}) sitting just " + "above the Major-4 probe's coverage (0.826 for 'Belford, Phil' " + "-> 'Belford,'). The protection is an artifact of band length: " + "the same absent 4-char name inside a longer band " + "('Montgomery-Winchester, Phil 1985-03-12 M MRN A482913' loses " + "'Phil' at coverage 0.915) clears the threshold and verifies " + "with the identity token never read. The absent-name cap " + "refuses structurally, independent of band length — that " + "independence is what the extra " + f"{op.false_abort - corner.false_abort:+.2%} false aborts buy." + ) + + +def render_markdown( + points: list[SweepPoint], + *, + corpus_rates: dict, + cat_tables: dict, + occlusion: dict, + exposure: dict, + out_md: Path, +) -> None: + """Render IDENTITY_ROC.md from the sweep data (do not edit by hand).""" + op = _op_point(points) + sim = OPERATING_POINT["contradiction_sim"] + legacy_prod = next( + p for p in points + if p.matcher == "legacy" and p.coverage_threshold == 0.80 + and p.uncovered_run_cap == 4 + ) + shipped = _find_current( + points, contradiction_sim=sim, coverage_threshold=0.80, + uncovered_run_cap=4, contradicted_chars_cap=0, + suspect_chars_cap=BIG, unexplained_name_tokens_cap=BIG, + absent_name_token_cap=BIG, + ) + occ_ship = occlusion["shipped"] + occ_prod = occlusion["production"] + exp_no = exposure["confusion_collision_name_only"] + exp_diff = exposure["confusion_collision_ids_differ"] + exp_same = exposure["confusion_collision_ids_same"] + exp_id = exposure["id_letter_digit_collision"] + + lines = [ + "# Identity band matcher — held-out adversarial ROC " + "(corpora v1+v2+v3)", + "", + "Generated by `python -m openadapt_flow.validation.identity_roc` " + "from the FROZEN corpora: v1 (4360 pairs, seed 20260710), v2 " + "(2240 pairs, seed 20260711, the classes v1 excluded by " + "construction) and v3 (300 pairs, seed 20260712, identifier " + "letter/digit collisions — the 5th-reopening class), hash " + "manifests committed before the matcher changes they evaluate. " + "Do not edit by hand.", + "", + "**Scope of every number below, stated plainly:** measured on " + "corpus v1+v2+v3 plus the 18 out-of-corpus reviewer probes " + "(`tests/test_identity_out_of_corpus.py`) — not 'in the world'. " + "The operating point is FIT TO THESE CORPORA: freezing the " + "corpora before the matcher change prevents tuning the corpus " + "toward the matcher, but nothing prevents the operating point " + "from being tuned toward the corpora — v1's own 0.000% headline " + "was shown partially tautological by the first 2026-07-10 review " + "(its labeling rule excluded confusion-collided names, short-" + "token discriminators, observed supersets and absent-name " + "shapes by construction), and v2's zero was in turn falsified by " + "the SECOND review (its `mrn_digit_swap` class only ever swapped " + "DIGITS, so it never surfaced the identifier letter/digit " + "collision the 5th reopening exploited). v3 exists because of " + "that second review; the same criticism could apply again.", + "", + "- **false accept** = a `different_entity` OR `indistinguishable` " + "pair VERIFIED — a wrong-patient click, catastrophic in an EMR.", + "- **false abort** = a `same_entity` pair refused — one hybrid " + "fallback (~$0.10) or a human retry.", + "- **justified abort** = an `indistinguishable` pair refused — " + "the true row misread by a letter-letter confusion is textually " + "identical to a real sibling (Neil misread as Nell vs an actual " + "patient Nell), so ABORT is correct for BOTH readings and is " + "never counted as a false abort.", + "", + "![ROC](identity_roc.png)", + "", + "## Chosen operating point", + "", + f"`contradiction_sim={sim}`, " + f"`coverage_threshold={OPERATING_POINT['coverage_threshold']}`, " + f"`uncovered_run_cap={OPERATING_POINT['uncovered_run_cap']}`, " + f"`contradicted_chars_cap=" + f"{OPERATING_POINT['contradicted_chars_cap']}`, " + f"`suspect_chars_cap={OPERATING_POINT['suspect_chars_cap']}`, " + f"`unexplained_name_tokens_cap=" + f"{OPERATING_POINT['unexplained_name_tokens_cap']}`, " + f"`absent_name_token_cap=" + f"{OPERATING_POINT['absent_name_token_cap']}` →", + f"**false accept {op.false_accept:.3%}, false abort " + f"{op.false_abort:.2%}, indistinguishable-class abort " + f"{op.justified_abort:.1%}** across v1+v2+v3.", + "", + "Reference points at the same coverage/run/contradiction caps:", + "", + f"- legacy matcher (pre-rebuild tiers): FA " + f"{legacy_prod.false_accept:.1%} / FAbort " + f"{legacy_prod.false_abort:.1%};", + f"- the SHIPPED pre-review decision (new budgets off): FA " + f"{shipped.false_accept:.2%} / FAbort {shipped.false_abort:.2%} " + "— every one of those false accepts is an out-of-corpus-review " + "class (collision/short-token/superset/absent-name) that v1 " + "could not see;", + f"- per corpus at the production point: v1 FA " + f"{corpus_rates['v1']['fa']:.3%} / FAbort " + f"{corpus_rates['v1']['fabort']:.2%}; v2 FA " + f"{corpus_rates['v2']['fa']:.3%} / FAbort " + f"{corpus_rates['v2']['fabort']:.2%}, indistinguishable abort " + f"{corpus_rates['v2']['justified']:.1%}; v3 (identifier " + f"collisions) FA {corpus_rates['v3']['fa']:.3%}.", + "", + "**The weighting, out loud:** a false accept is a wrong-patient " + "write on a real EMR — a clinical-safety event that downstream " + "note verification does NOT catch (the note really is saved, in " + "the wrong chart). A false abort costs one ~$0.10 hybrid-fallback " + "escalation or a human retry. We price that asymmetry at four-plus " + "orders of magnitude, so only zero-measured-false-accept points " + "were considered, and the six budgets are kept independently " + "strict (defense in depth) rather than taking the minimum-false-" + "abort zero-FA corner. The availability price is real and stated " + "in the tables below: the v1 false-abort rate rose from 10.7% " + "(pre-review matcher) through 21.2% (first redesign) to " + f"{corpus_rates['v1']['fabort']:.1%} after the identifier-suspect " + "fix — concentrated in occlusion, digit-class OCR noise that " + "lands on an identifier token (DOB/MRN/phone) and now aborts " + "(the true-row identifier-noise cost, see below), the " + "indistinguishable letter-letter mechanism, and capitalized " + "adjacent-row bleed — because each review showed the cheaper " + "operating point was buying availability with silent " + "wrong-patient classes.", + "", + _corner_paragraph(points), + "", + "## The indistinguishable trade-off", + "", + "The suspect rule cannot verify a letter-letter-collided name " + "and cannot distinguish a misread from a sibling — nobody can, " + "at band level: the bands are textually identical. The price of " + "refusing the Neil/Nell sibling (Blocker 1) is refusing the " + "true row whenever OCR letter-letter-garbles a name token:", + "", + f"- v2 `confusion_misread_true_row` (all 200 labeled " + "indistinguishable): " + f"{corpus_rates['v2']['justified']:.1%} abort — correct for " + "both readings, counted as justified;", + f"- v1 `ocr_confusion` / `compound_noise` false aborts " + f"({cat_tables['v1_current'][LABEL_SAME]['ocr_confusion']:.1%} / " + f"{cat_tables['v1_current'][LABEL_SAME]['compound_noise']:.1%}) " + "are dominated by the same letter-letter shapes (v1 labels them " + "same_entity because its generator KNOWS it applied noise; the " + "matcher cannot know that, and treating them as verifiable is " + "exactly the Blocker-1 hole).", + "", + "## The identifier letter/digit collision (5th reopening)", + "", + "The SECOND review found the suspect budget guarded NAME tokens " + "only (`_name_plausible` is False for any token with a digit), so " + "it was OFF for MRNs/account numbers while the confusion " + "canonicalization (l/1, O/0, S/5, Z/2, B/8, g/9) still applied to " + "them — a DIFFERENT patient's identifier one confusable char " + "apart ('A01234' vs 'AO1234') silently VERIFIED, defeating " + "MRN-based disambiguation of same-name patients. The suspect rule " + "now also fires on a confusion-only match where the RECORDED " + "token contains a digit (an identifier):", + "", + f"- v3 `id_letter_digit_collision` (300 pairs, DIFFERENT patients " + f"one confusable identifier char apart): FA " + f"{cat_tables['v3_current'][LABEL_DIFFERENT]['id_letter_digit_collision']:.1%} " + f"(legacy " + f"{cat_tables['v3_legacy'][LABEL_DIFFERENT]['id_letter_digit_collision']:.1%}).", + "- **Chosen design: option A, no corroboration escape.** A " + "confusion-differing identifier aborts even when name and DOB " + "raw-match, so two same-name patients distinguished ONLY by an " + "OCR-confusable identifier char never verify — the case a " + "'corroborate with name+DOB' design (option B) would wrongly " + "ALLOW (two real patients can share a name and DOB; the MRN is " + "the sole unique key). Option B's corroboration escape is itself " + "a wrong-patient verify, so it was rejected for the clinical " + "release.", + "- **Scoping matters:** the rule keys on the RECORDED token " + "carrying a digit, so a NAME OCR'd with a digit-class confusion " + "('Belford' -> 'Be1ford') stays a clean match (the recorded " + "'Belford' is all-alpha — proof it is a name), while an " + "identifier aborts. All-digit differences (748291 vs 748292) are " + "not confusion-equivalent and mismatch via coverage/contradiction " + "as before.", + f"- **The availability cost, honestly:** true-row OCR noise ON an " + "identifier now aborts too — indistinguishable at band level from " + "a different patient. v2 `digit_confusion_true_row` rose from " + f"0.0% to " + f"{cat_tables['v2_current'][LABEL_SAME]['digit_confusion_true_row']:.1%} " + "false aborts, and v1's digit-noise classes rose correspondingly. " + "That is the cheap direction (a ~$0.10 halt vs a wrong-patient " + "write) and is disclosed in docs/LIMITS.md.", + "", + "## Occlusion recount (correcting the earlier framing)", + "", + "The earlier IDENTITY_ROC.md claimed occlusion false-aborts were " + "'bands whose identity tokens were not read at all — refusing is " + "the correct epistemic outcome'. The reviewer measured otherwise " + "and this recount confirms it:", + "", + f"- shipped decision: {occ_ship['aborts']}/240 occlusion aborts, " + f"of which **{occ_ship['aborts_with_both_names_readable']}** " + "still had BOTH name tokens readable (the abort was trailing " + "DOB/MRN loss, not unreadable identity);", + f"- production decision: {occ_prod['aborts']}/240 aborts, " + f"**{occ_prod['aborts_with_both_names_readable']}** with both " + "name tokens readable.", + "", + "So roughly half of the occlusion aborts are a plain " + "availability cost on rows whose name WAS readable — kept " + "because a band that lost its trailing discriminators (DOB/MRN) " + "retains only the name, and the name alone is exactly the " + "surface the collision classes attack. That is a priced " + "trade-off, not an epistemic virtue.", + "", + "## Realistic-exposure analysis (collision shapes)", + "", + "What catches the wrong row if the suspect rule is disabled — " + "i.e. what does the suspect rule alone defend? (Correcting the " + "first review's write-up: its 'ids differ -> 180/180 caught " + "without the suspect rule' claim was true only because those " + "pairs differ in the NAME by a letter-letter confusion AND carry " + "distinct DOB/MRN. It did NOT cover the letter/DIGIT identifier " + "collision, which the second review then exploited — see the v3 " + "row.)", + "", + "| collision class | n | FA at production | FA without the " + "suspect rule |", + "| --- | --- | --- | --- |", + f"| name collision, distinct DOB/MRN present | {exp_diff['n']} | " + f"{exp_diff['false_accepts_at_production']} | " + f"{exp_diff['false_accepts_without_suspect_rule']} |", + f"| name collision, identical DOB/MRN (probe shape) | " + f"{exp_same['n']} | " + f"{exp_same['false_accepts_at_production']} | " + f"{exp_same['false_accepts_without_suspect_rule']} |", + f"| name collision, name is the ONLY discriminator | {exp_no['n']} " + f"| {exp_no['false_accepts_at_production']} | " + f"{exp_no['false_accepts_without_suspect_rule']} |", + f"| identifier letter/DIGIT collision (v3) | {exp_id['n']} | " + f"{exp_id['false_accepts_at_production']} | " + f"{exp_id['false_accepts_without_suspect_rule']} |", + "", + "Reading: a name collision with distinct DOB/MRN is caught by the " + "absence/contradiction budgets alone " + f"({exp_diff['n'] - exp_diff['false_accepts_without_suspect_rule']}" + f"/{exp_diff['n']} without the suspect rule). But when the " + "collision is in the SOLE discriminator — a name with no other " + "distinguishing token, or an IDENTIFIER (the v3 row: " + f"{exp_id['false_accepts_without_suspect_rule']}/{exp_id['n']} " + "verify without the suspect rule, 0 with it) — the suspect rule " + "is the only defense. It defends only against collisions INSIDE " + "the frozen confusion table: an exotic misread outside the table, " + "a collision by case/whitespace only, the 'Ann Marie'/'Annmarie' " + "token-join equivalence, and short (1-2 char) ALL-ALPHA codes " + "confused with a digit (the recorded token carries no digit, so " + "the identifier rule does not see it, and the name rule needs " + ">= 3 chars) remain verifiable — disclosed in docs/LIMITS.md.", + "", + "## Error rates by generator category (at the production decision)", + "", + "### Corpus v1", + "", + "| category | label | legacy matcher | redesigned matcher |", + "| --- | --- | --- | --- |", + ] + for label in (LABEL_DIFFERENT, LABEL_SAME): + kind = "false accept" if label == LABEL_DIFFERENT else "false abort" + for category in cat_tables["v1_current"][label]: + lines.append( + f"| `{category}` | {kind} | " + f"{cat_tables['v1_legacy'][label][category]:.1%} | " + f"{cat_tables['v1_current'][label][category]:.1%} |" + ) + lines += [ + "", + "### Corpus v2", + "", + "| category | label | legacy matcher | redesigned matcher |", + "| --- | --- | --- | --- |", + ] + for label in (LABEL_DIFFERENT, LABEL_INDISTINGUISHABLE, LABEL_SAME): + if label == LABEL_SAME: + kind = "false abort" + elif label == LABEL_INDISTINGUISHABLE: + kind = "false accept (verify on indistinguishable)" + else: + kind = "false accept" + for category in cat_tables["v2_current"].get(label, {}): + lines.append( + f"| `{category}` | {kind} | " + f"{cat_tables['v2_legacy'][label][category]:.1%} | " + f"{cat_tables['v2_current'][label][category]:.1%} |" + ) + lines += [ + "", + "### Corpus v3 (identifier letter/digit collisions)", + "", + "| category | label | legacy matcher | redesigned matcher |", + "| --- | --- | --- | --- |", + ] + for category in cat_tables["v3_current"].get(LABEL_DIFFERENT, {}): + lines.append( + f"| `{category}` | false accept | " + f"{cat_tables['v3_legacy'][LABEL_DIFFERENT][category]:.1%} | " + f"{cat_tables['v3_current'][LABEL_DIFFERENT][category]:.1%} |" + ) + lines += [ + "", + "## Pareto frontier (redesigned matcher, v1+v2+v3)", + "", + "| sim | coverage | run_cap | contra | suspect | name | " + "absent-alpha | false accept | false abort |", + "| --- | --- | --- | --- | --- | --- | --- | --- | --- |", + ] + for p in pareto([p for p in points if p.matcher == "current"]): + lines.append( + f"| {p.contradiction_sim} | {p.coverage_threshold} | " + f"{p.uncovered_run_cap} | {_cap_str(p.contradicted_chars_cap)} | " + f"{_cap_str(p.suspect_chars_cap)} | " + f"{_cap_str(p.unexplained_name_tokens_cap)} | " + f"{_cap_str(p.absent_name_token_cap)} | " + f"{p.false_accept:.3%} | {p.false_abort:.2%} |" + ) + lines += [ + "", + "Raw sweep data: `identity_roc.json`. The operating point is " + "pinned by boundary tests in `tests/test_identity.py`; the " + "sibling probes and the 18 out-of-corpus reviewer probes (13 " + "first review + 5 identifier collision) are pinned as permanent " + "mismatches in `tests/test_identity.py` and " + "`tests/test_identity_out_of_corpus.py`.", + "", + ] + out_md.write_text("\n".join(lines), encoding="utf-8") + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--out", type=Path, default=Path("docs/validation")) + args = parser.parse_args() + args.out.mkdir(parents=True, exist_ok=True) + + v1 = generate_corpus() + v2 = generate_corpus_v2() + v3 = generate_corpus_v3() + pairs = v1 + v2 + v3 + points = sweep(pairs) + front = pareto([p for p in points if p.matcher == "current"]) + + def corpus_rate(subset): + stats = [band_match(p.recorded, p.observed) for p in subset] + fa, ab, ja = _rates(subset, stats, **PRODUCTION_CAPS) + return {"fa": fa, "fabort": ab, "justified": ja} + + corpus_rates = { + "v1": corpus_rate(v1), + "v2": corpus_rate(v2), + "v3": corpus_rate(v3), + } + cat_tables = { + "v1_current": per_category(v1, band_match, PRODUCTION_CAPS), + "v1_legacy": per_category( + v1, legacy_band_match, + dict(coverage=0.8, run_cap=4, contra_cap=BIG), + ), + "v2_current": per_category(v2, band_match, PRODUCTION_CAPS), + "v2_legacy": per_category( + v2, legacy_band_match, + dict(coverage=0.8, run_cap=4, contra_cap=BIG), + ), + "v3_current": per_category(v3, band_match, PRODUCTION_CAPS), + "v3_legacy": per_category( + v3, legacy_band_match, + dict(coverage=0.8, run_cap=4, contra_cap=BIG), + ), + } + occlusion = occlusion_recount(v1) + exposure = realistic_exposure(v2, v3) + + render_markdown( + points, + corpus_rates=corpus_rates, + cat_tables=cat_tables, + occlusion=occlusion, + exposure=exposure, + out_md=args.out / "IDENTITY_ROC.md", + ) + (args.out / "identity_roc.json").write_text( + json.dumps( + { + "operating_point": OPERATING_POINT, + "corpus_rates_at_operating_point": corpus_rates, + "points": [p.as_dict() for p in points], + "pareto_current": [p.as_dict() for p in front], + "per_category": cat_tables, + "occlusion_recount": occlusion, + "realistic_exposure": exposure, + }, + indent=2, + ) + + "\n" + ) + render_chart(points, args.out / "identity_roc.png") + print(f"wrote {args.out}/identity_roc.json and identity_roc.png") + op = _op_point(points) + print( + f"operating point: FA={op.false_accept:.3%} " + f"FAbort={op.false_abort:.2%} justified={op.justified_abort:.1%}" + ) + print("\nPareto frontier (redesigned matcher):") + for p in front: + marker = " <== OPERATING POINT" if _matches_op(p) else "" + print( + f" sim={p.contradiction_sim} cov={p.coverage_threshold} " + f"run={p.uncovered_run_cap} contra={_cap_str(p.contradicted_chars_cap)} " + f"suspect={_cap_str(p.suspect_chars_cap)} " + f"name={_cap_str(p.unexplained_name_tokens_cap)} " + f"alpha={_cap_str(p.absent_name_token_cap)}: " + f"FA={p.false_accept:.3%} FAbort={p.false_abort:.2%}{marker}" + ) + + +if __name__ == "__main__": + main() diff --git a/tests/e2e/test_record_compile_replay.py b/tests/e2e/test_record_compile_replay.py index 470956a..d5341ec 100644 --- a/tests/e2e/test_record_compile_replay.py +++ b/tests/e2e/test_record_compile_replay.py @@ -436,7 +436,25 @@ def cli(*args: str) -> subprocess.CompletedProcess: assert (run_dir / "report.json").is_file() report_md = run_dir / "REPORT.md" assert report_md.is_file() - assert "cli-smoke" in report_md.read_text() + md = report_md.read_text() + assert "cli-smoke" in md + # Protection coverage is first-class in every run report: N of M + # armed, and any unarmed click listed with its compile-time reason. + assert "## Identity protection coverage" in md + assert "click steps identity-armed" in md + # The bundle itself carries the audit fields for click steps. + wf = json.loads((bundle / "workflow.json").read_text()) + clicks = [ + s for s in wf["steps"] + if s["action"] in ("click", "double_click") + ] + assert clicks and all( + s["identity_armed"] is not None for s in clicks + ) + assert all( + s["identity_armed"] or s["identity_unarmed_reason"] + for s in clicks + ) proc = cli("emit-skill", str(bundle), "--out", str(skills)) assert proc.returncode == 0, proc.stderr diff --git a/tests/test_adversary_corpus.py b/tests/test_adversary_corpus.py new file mode 100644 index 0000000..741f31c --- /dev/null +++ b/tests/test_adversary_corpus.py @@ -0,0 +1,70 @@ +"""Freeze tests for the adversarial identity corpus. + +The corpus is a held-out evaluation set for the identity band matcher: +the generator, seed, and the committed hash manifest were frozen BEFORE +the matcher was evaluated or changed (see the module docstring and +docs/validation/VALIDATION.md). If any of these tests fail, the corpus +moved after freezing — a change that must be explicitly disclosed and +justified as a generator BUG fix, never as tuning. +""" + +from __future__ import annotations + +import json +from pathlib import Path + +from openadapt_flow.runtime.identity import squash +from openadapt_flow.validation.adversary_corpus import ( + FROZEN_SEED, + LABEL_DIFFERENT, + LABEL_SAME, + build_manifest, + corpus_canonical, + generate_corpus, +) + +REPO_ROOT = Path(__file__).resolve().parent.parent +MANIFEST_PATH = REPO_ROOT / "docs/validation/adversary_corpus_manifest.json" + + +def test_corpus_matches_frozen_manifest(): + """The regenerated corpus must hash to the committed manifest — + post-hoc tuning of the generator against the matcher is detectable + here.""" + committed = json.loads(MANIFEST_PATH.read_text()) + manifest = build_manifest(generate_corpus()) + assert manifest["seed"] == FROZEN_SEED == committed["seed"] + assert manifest["sha256"] == committed["sha256"] + assert manifest["counts"] == committed["counts"] + assert manifest["n_total"] == committed["n_total"] + + +def test_corpus_is_deterministic(): + assert generate_corpus() == generate_corpus() + + +def test_corpus_scale_and_labels(): + """>= 2000 pairs per class, valid labels, non-degenerate bands.""" + pairs = generate_corpus() + same = [p for p in pairs if p.label == LABEL_SAME] + different = [p for p in pairs if p.label == LABEL_DIFFERENT] + assert len(same) >= 2000 + assert len(different) >= 2000 + assert len(same) + len(different) == len(pairs) + for p in pairs: + # Recorded bands are always armable (>= MIN_CONTEXT_CHARS): the + # corpus evaluates the matcher, not the arming floor. + assert len(squash(p.recorded)) >= 12, p + assert p.observed.strip(), p + + +def test_different_entity_pairs_are_not_ocr_equivalent(): + """No different_entity pair may be a plausible OCR misread of its own + recorded band under the corpus's frozen confusion model — that would + be a mislabeled pair, unwinnable for any matcher.""" + for p in generate_corpus(): + if p.label != LABEL_DIFFERENT: + continue + assert corpus_canonical(squash(p.recorded)) != corpus_canonical( + squash(p.observed) + ), p diff --git a/tests/test_adversary_corpus_v2.py b/tests/test_adversary_corpus_v2.py new file mode 100644 index 0000000..5024623 --- /dev/null +++ b/tests/test_adversary_corpus_v2.py @@ -0,0 +1,102 @@ +"""Freeze tests for adversarial corpus v2. + +Same discipline as v1 (tests/test_adversary_corpus.py): the v2 +generator, seed, and committed hash manifest are frozen BEFORE the +redesigned matcher is evaluated on the corpus, so post-hoc tuning of +the corpus toward the matcher is detectable in git history. v1 stays +byte-identical (its own freeze test still pins it); v2 is a versioned +extension with its own seed and manifest. +""" + +from __future__ import annotations + +import json +from pathlib import Path + +from openadapt_flow.runtime.identity import squash +from openadapt_flow.validation.adversary_corpus import ( + LABEL_DIFFERENT, + LABEL_SAME, + build_manifest, + corpus_canonical, +) +from openadapt_flow.validation.adversary_corpus_v2 import ( + FROZEN_SEED_V2, + LABEL_INDISTINGUISHABLE, + generate_corpus_v2, + letter_confusion_variants, +) + +REPO_ROOT = Path(__file__).resolve().parent.parent +MANIFEST_PATH = ( + REPO_ROOT / "docs/validation/adversary_corpus_v2_manifest.json" +) + + +def test_corpus_v2_matches_frozen_manifest(): + committed = json.loads(MANIFEST_PATH.read_text()) + manifest = build_manifest(generate_corpus_v2(), seed=FROZEN_SEED_V2) + assert manifest["seed"] == FROZEN_SEED_V2 == committed["seed"] + assert manifest["sha256"] == committed["sha256"] + assert manifest["counts"] == committed["counts"] + assert manifest["n_total"] == committed["n_total"] + + +def test_corpus_v2_is_deterministic(): + assert generate_corpus_v2() == generate_corpus_v2() + + +def test_corpus_v2_scale_and_labels(): + pairs = generate_corpus_v2() + by_label: dict[str, int] = {} + for p in pairs: + by_label[p.label] = by_label.get(p.label, 0) + 1 + assert len(squash(p.recorded)) >= 12, p + assert p.observed.strip(), p + assert set(by_label) == { + LABEL_DIFFERENT, + LABEL_SAME, + LABEL_INDISTINGUISHABLE, + } + assert by_label[LABEL_DIFFERENT] >= 1500 + assert by_label[LABEL_INDISTINGUISHABLE] >= 200 + assert by_label[LABEL_SAME] >= 400 + + +def test_collision_pairs_are_confusion_equivalent_by_construction(): + """The collision classes exist BECAUSE v1 excluded confusion- + equivalent pairs: here the recorded and observed bands (or at + least the collided name inside them) MUST be canonical-equal for + the ids-same and misread categories — that is the class.""" + for p in generate_corpus_v2(): + if p.category in ( + "confusion_collision_name_only", + "confusion_collision_ids_same", + "confusion_misread_true_row", + ): + assert corpus_canonical(squash(p.recorded)) == corpus_canonical( + squash(p.observed) + ), p + + +def test_letter_confusion_variants_are_systematic_and_sound(): + assert "Nell" in letter_confusion_variants("Neil") + assert "Gall" in letter_confusion_variants("Gail") + assert "Mamie" in letter_confusion_variants("Marnie") + for name in ("Neil", "William", "Daniel"): + for variant in letter_confusion_variants(name): + assert variant.lower() != name.lower() + assert variant.isalpha() + assert corpus_canonical(variant) == corpus_canonical(name) + + +def test_v1_manifest_untouched(): + """v2 must not move v1: the v1 manifest on disk still carries the + original frozen seed and hash (v1's own freeze test verifies the + regeneration; this pins the file identity).""" + v1 = json.loads( + (REPO_ROOT / "docs/validation/adversary_corpus_manifest.json") + .read_text() + ) + assert v1["seed"] == 20260710 + assert v1["n_total"] == 4360 diff --git a/tests/test_adversary_corpus_v3.py b/tests/test_adversary_corpus_v3.py new file mode 100644 index 0000000..9fcfe24 --- /dev/null +++ b/tests/test_adversary_corpus_v3.py @@ -0,0 +1,73 @@ +"""Freeze tests for adversarial corpus v3 (identifier letter/digit). + +Same discipline as v1/v2: the v3 generator, seed, and committed hash +manifest are frozen BEFORE the identifier-suspect matcher change is +evaluated on the corpus. v1 and v2 stay byte-identical (their own freeze +tests pin them). +""" + +from __future__ import annotations + +import json +from pathlib import Path + +from openadapt_flow.runtime.identity import ocr_canonical, squash, tokenize +from openadapt_flow.validation.adversary_corpus import ( + LABEL_DIFFERENT, + build_manifest, +) +from openadapt_flow.validation.adversary_corpus_v3 import ( + FROZEN_SEED_V3, + generate_corpus_v3, +) + +REPO_ROOT = Path(__file__).resolve().parent.parent +MANIFEST_PATH = ( + REPO_ROOT / "docs/validation/adversary_corpus_v3_manifest.json" +) + + +def test_corpus_v3_matches_frozen_manifest(): + committed = json.loads(MANIFEST_PATH.read_text()) + manifest = build_manifest(generate_corpus_v3(), seed=FROZEN_SEED_V3) + assert manifest["seed"] == FROZEN_SEED_V3 == committed["seed"] + assert manifest["sha256"] == committed["sha256"] + assert manifest["counts"] == committed["counts"] + assert manifest["n_total"] == committed["n_total"] + + +def test_corpus_v3_is_deterministic(): + assert generate_corpus_v3() == generate_corpus_v3() + + +def test_corpus_v3_scale_and_labels(): + pairs = generate_corpus_v3() + assert len(pairs) >= 300 + for p in pairs: + assert p.label == LABEL_DIFFERENT + assert p.category == "id_letter_digit_collision" + assert len(squash(p.recorded)) >= 12, p + assert p.observed.strip(), p + + +def test_v3_pairs_are_confusion_equivalent_and_id_only_differ(): + """Recorded and observed bands must canonicalize equal (the whole + point — the ONLY difference is a letter/digit-confusable char inside + the identifier), yet be raw-unequal, and the differing token must + contain a digit (an identifier, not a name).""" + for p in generate_corpus_v3(): + assert squash(p.recorded) != squash(p.observed), p + assert ocr_canonical(squash(p.recorded)) == ocr_canonical( + squash(p.observed) + ), p + rec = tokenize(p.recorded) + obs = tokenize(p.observed) + assert len(rec) == len(obs), p + differing = [ + (a, b) for a, b in zip(rec, obs) if a != b + ] + # exactly the identifier token differs, and it contains a digit + assert len(differing) == 1, p + a, b = differing[0] + assert any(c.isdigit() for c in a), p + assert ocr_canonical(a) == ocr_canonical(b), p diff --git a/tests/test_compiler.py b/tests/test_compiler.py index 3118ed0..2130444 100644 --- a/tests/test_compiler.py +++ b/tests/test_compiler.py @@ -587,14 +587,21 @@ def test_row_click_captures_context_outside_crop( assert "12:45" not in context # timestamps are volatile assert "open" not in context # the target's own (mutable) label assert "alex" not in context # other rows are outside the band + # Armed-coverage audit trail in the bundle: + assert workflow.steps[0].identity_armed is True + assert workflow.steps[0].identity_unarmed_reason is None def test_click_with_no_row_text_has_no_context(self, compiled) -> None: """The synthetic Sign In button sits alone on its row: nothing outside the crop shares the band, so no context is recorded and the - identity check is not armed for the step.""" + identity check is not armed for the step — and the bundle says so + (identity_armed=False plus a reason), so an operator can audit + protection coverage before running.""" for step in compiled["workflow"].steps: if step.anchor is not None: assert step.anchor.context_text is None, step.id + assert step.identity_armed is False, step.id + assert step.identity_unarmed_reason, step.id def _write_recording( diff --git a/tests/test_identity.py b/tests/test_identity.py index 05b406f..31f26b6 100644 --- a/tests/test_identity.py +++ b/tests/test_identity.py @@ -16,6 +16,26 @@ Plus the modal-overlay false abort (order-sensitive matching scored a token permutation of the same band at ~0.66 < 0.8 on live OpenEMR). + +THIRD REOPENING (2026-07-10, near-name siblings): the containment and +similarity tiers of the second fix verified sibling rows — 'Phil' inside +'Philip' (containment 1.0), 'John' vs 'Joan' (ratio 0.75), Jr/Sr rows, +off-by-one DOBs, swapped MRN digits. All pinned in TestSiblingProbes / +TestFieldLevelSiblings below; the matcher was rebuilt around strict +OCR-equivalence plus contradiction budgets and its operating point was +picked from a FROZEN held-out adversarial corpus +(docs/validation/IDENTITY_ROC.md) — pinned in TestOperatingPoint. + +OUT-OF-CORPUS REVIEW (2026-07-10, PR #16): thirteen probes outside +corpus v1's label rule all VERIFIED (confusion-collided distinct names, +short-token discriminators, observed-side supersets, absent name +tokens) — pinned in tests/test_identity_out_of_corpus.py, fixed by the +suspect / short-token-replacement / unexplained-name / absent-name +budgets. Two consequences flipped pins HERE: letter-letter confusion +jitter on the TRUE row now aborts (indistinguishable from a Neil/Nell +sibling — see TestTruePositives), and the pure-absence boundary at the +run cap now refuses when the absent token is name-like (see +TestOperatingPoint). """ from __future__ import annotations @@ -25,10 +45,15 @@ import pytest from openadapt_flow.runtime.identity import ( + ABSENT_NAME_TOKEN_CAP, + CONTRADICTED_CHARS_CAP, + CONTRADICTION_SIM, COVERAGE_THRESHOLD, MIN_CONTEXT_CHARS, MIN_PARAM_CHARS, + SUSPECT_CHARS_CAP, UNCOVERED_RUN_CAP, + UNEXPLAINED_NAME_TOKENS_CAP, band_match, band_region, context_from_lines, @@ -36,6 +61,7 @@ embedded_params, lines_near_point, longest_run, + ocr_canonical, required_run, squash, substitute_param, @@ -61,9 +87,12 @@ def test_b1_wrong_entity_with_shared_procedure_text_mismatches(self): though raw coverage is ~0.89.""" check = verify_target_identity(ROW, WRONG_ROW) assert check.status == "mismatch" - cov, uncovered = band_match(ROW, WRONG_ROW) - assert cov >= COVERAGE_THRESHOLD # coverage alone WOULD pass - assert uncovered > UNCOVERED_RUN_CAP # the residue cap catches it + match = band_match(ROW, WRONG_ROW) + assert match.coverage >= COVERAGE_THRESHOLD # coverage alone WOULD pass + assert match.max_uncovered_run > UNCOVERED_RUN_CAP # the run cap catches it + # ... and 'Ann Wu' is a REPLACEMENT of 'Jane Li', so the 2026-07-10 + # contradiction budget catches it independently of the run cap: + assert match.contradicted_chars > CONTRADICTED_CHARS_CAP def test_b1_generic_band_never_arms(self): """'Active High 3' (11 squashed chars) is generic — any sibling row @@ -99,6 +128,88 @@ def test_p1a_any_row_containing_the_value_does_not_verify(self): assert check.param == "patient" +# -- the third-reopening probes, verbatim (2026-07-10) ----------------------- + + +class TestSiblingProbes: + """The four confirmed near-name sibling probes: each returned + (coverage=1.0, residue=0) — VERIFIED — under the pre-2026-07-10 + matcher (containment tier for Phil⊂Philip; similarity tier at 0.7 for + John/Joan at 0.75). Real EMR rows are full of near-name siblings + (family members, Jr/Sr, John/Joan) and a wrong-patient write is NOT + caught downstream (the note really is saved — in the wrong chart). + These are permanent mismatches.""" + + def test_prefix_extension_phil_philip(self): + check = verify_target_identity( + "Belford, Phil 1985-03-12 M", "Belford, Philip 1985-03-12 M" + ) + assert check.status == "mismatch" + + def test_prefix_extension_reverse_direction(self): + check = verify_target_identity( + "Belford, Philip 1985-03-12 M", "Belford, Phil 1985-03-12 M" + ) + assert check.status == "mismatch" + + def test_single_letter_edit_john_joan(self): + check = verify_target_identity( + "Smith, John 1985-03-12 M", "Smith, Joan 1985-03-12 M" + ) + assert check.status == "mismatch" + + def test_prefix_extension_phil_phillipa(self): + # similarity('phil','phillipa') = 0.67 — BELOW the old 0.7 tier, + # yet the old containment tier still verified it; the semantic- + # extension contradiction rule catches it now. + check = verify_target_identity( + "Belford, Phil 1985-03-12 M", "Belford, Phillipa 1985-03-12 M" + ) + assert check.status == "mismatch" + + +class TestFieldLevelSiblings: + """Sibling classes beyond names, from the frozen adversarial corpus + (all >=50% verified under the legacy matcher; 0% now).""" + + def test_generational_suffix_mismatches_both_directions(self): + base = "Belford, Phil 1985-03-12 M" + with_jr = "Belford, Phil Jr 1985-03-12 M" + assert verify_target_identity(base, with_jr).status == "mismatch" + assert verify_target_identity(with_jr, base).status == "mismatch" + + def test_generational_suffix_with_ocr_noise_still_mismatches(self): + # A live 'II' commonly OCRs as 'lI'; suffix detection must be + # confusion-canonical, not literal. + check = verify_target_identity( + "Ramirez, Stephanie 1985-06-02 F", + "Ramire2, Stephanie lI 1985-06-02 F", + ) + assert check.status == "mismatch" + + def test_dob_off_by_one_field_mismatches(self): + check = verify_target_identity( + "Belford, Phil 1985-03-12 M", "Belford, Phil 1985-03-13 M" + ) + assert check.status == "mismatch" + + def test_mrn_digit_swap_mismatches(self): + check = verify_target_identity( + "Belford, Phil 1985-03-12 M MRN A123456", + "Belford, Phil 1985-03-12 M MRN A123465", + ) + assert check.status == "mismatch" + + def test_same_surname_dissimilar_short_first_name_mismatches(self): + # 'Amy' -> 'Kim': similarity 0.0 and only a 3-char absence run — + # under every workable run cap — but the replacement rule sees an + # unexplained alphabetic observed token where ours is missing. + check = verify_target_identity( + "Smith, Amy 1985-03-12 M", "Smith, Kim 1985-03-12 M" + ) + assert check.status == "mismatch" + + # -- true-positive behavior around the probes -------------------------------- @@ -106,15 +217,31 @@ class TestTruePositives: def test_true_row_verifies(self): assert verify_target_identity(ROW, ROW).status == "verified" - def test_ocr_jitter_verifies(self): - """Per-character OCR noise ('paln' ~ 'pain', '5ample' ~ 'sample') - must not abort a correct target.""" + def test_digit_class_ocr_jitter_verifies(self): + """Digit/symbol-class OCR noise ('5ample' ~ 'sample', 'Phi1' ~ + 'Phil') must not abort a correct target: a human name contains + no digits, so no collision with a DIFFERENT name is possible.""" check = verify_target_identity( "Jane Sample Knee pain referral High", - "Jane 5ample Knee paln referral Hlgh", + "Jane 5ample Knee pain referral High", ) assert check.status == "verified" + def test_letter_letter_jitter_aborts_as_indistinguishable(self): + """FLIPPED by the 2026-07-10 out-of-corpus review: 'paln'/'pain' + and 'Hlgh'/'High' are letter-letter confusions — the exact + mechanism by which 'Nell' passes for 'Neil' (a DIFFERENT + patient). Content-agnostically the true-row misread and the + collided sibling are the same band, so the honest outcome is an + abort for both readings (availability cost, disclosed in + docs/LIMITS.md; scored as the indistinguishable class in the + v2 corpus).""" + check = verify_target_identity( + "Jane Sample Knee pain referral High", + "Jane Sample Knee paln referral Hlgh", + ) + assert check.status == "mismatch" + def test_token_permutation_verifies(self): """Live OpenEMR false abort: page chrome around a modal re-reads in a different segmentation order — same tokens, different order and @@ -180,57 +307,138 @@ def test_empty_observed_is_unreadable(self): class TestBandMatch: def test_exact_match(self): - assert band_match(ROW, ROW) == (1.0, 0) + assert band_match(ROW, ROW) == (1.0, 0, 0, 0, 0, 0) def test_adjacent_unmatched_tokens_merge_into_one_run(self): - cov, uncovered = band_match(ROW, WRONG_ROW) - assert uncovered == len("janeli") + match = band_match(ROW, WRONG_ROW) + assert match.max_uncovered_run == len("janeli") def test_separated_unmatched_tokens_do_not_merge(self): - cov, uncovered = band_match( + match = band_match( "alpha beta gamma delta", "alpha WRONG gamma NOPE" ) - assert uncovered == max(len("beta"), len("delta")) + assert match.max_uncovered_run == max(len("beta"), len("delta")) def test_short_tokens_match_only_verbatim(self): # 'li' must not match inside 'lipid'. - cov, _ = band_match("li", "lipid screening") - assert cov == 0.0 - cov, _ = band_match("li", "jane li") - assert cov == 1.0 - - def test_containment_tolerates_merged_tokens(self): - # Recorded 'ShowActive' vs observed 'Show Active' (and vice versa). - cov, uncovered = band_match("ShowActive", "Show Active") - assert cov == 1.0 and uncovered == 0 + assert band_match("li", "lipid screening").coverage == 0.0 + assert band_match("li", "jane li").coverage == 1.0 + + def test_split_and_join_tolerated(self): + # Recorded 'ShowActive' vs observed 'Show Active' (and vice versa): + # splits/joins are the ONLY sub-token acceptance left — full + # consumption, no partial containment ('Phil' in 'Philip' is a + # sibling, not a join; see TestSiblingProbes). + assert band_match("ShowActive", "Show Active") == (1.0, 0, 0, 0, 0, 0) + assert band_match("Show Active", "ShowActive") == (1.0, 0, 0, 0, 0, 0) + # ... and with digit-class OCR noise inside the split form: + assert band_match("ShowActive", "Sh0w Active") == (1.0, 0, 0, 0, 0, 0) + + def test_letter_letter_confusion_is_suspect_not_clean(self): + # 'Cornprehensive' matches 'Comprehensive' canonically (rn/m) but + # the pair is digit-free on both sides — the same shape as the + # Marnie/Mamie sibling collision, so it is charged to the + # suspect budget instead of being a clean match. + match = band_match("Comprehensive panel", "Cornprehensive panel") + assert match.coverage == 1.0 + assert match.suspect_chars == len("comprehensive") def test_empty_inputs(self): - assert band_match("", "anything") == (0.0, 0) - cov, uncovered = band_match("abcdef", "") - assert cov == 0.0 and uncovered == 6 - - def test_coverage_boundary_at_threshold(self): - """Exactly one 4-char token uncovered out of 20 chars: coverage - 0.8 == threshold and residue 4 == cap pass; a 5-char uncovered - token fails the cap.""" - cov, uncovered = band_match( - "abcd efgh ijkl mnop qrst", "abcd efgh ijkl mnop XXXX" + assert band_match("", "anything") == (0.0, 0, 0, 0, 0, 0) + match = band_match("abcdef", "") + assert match.coverage == 0.0 and match.max_uncovered_run == 6 + # ... and the fully absent alphabetic token registers as an + # absent name-like token. + assert match.max_absent_alpha_token == 6 + + def test_tokenize(self): + assert tokenize(" Jane Li \n panel ") == ["jane", "li", "panel"] + assert tokenize("") == [] + + +class TestOperatingPoint: + """Pin the ROC-chosen decision parameters and their boundaries + (docs/validation/IDENTITY_ROC.md). Moving any of these constants + invalidates the committed ROC — regenerate it in the same change.""" + + def test_pinned_constants(self): + assert COVERAGE_THRESHOLD == 0.8 + assert UNCOVERED_RUN_CAP == 4 + assert CONTRADICTION_SIM == 0.62 + assert CONTRADICTED_CHARS_CAP == 0 + assert SUSPECT_CHARS_CAP == 0 + assert UNEXPLAINED_NAME_TOKENS_CAP == 0 + assert ABSENT_NAME_TOKEN_CAP == 3 + + def test_pure_absence_boundary_is_class_weighted(self): + """FLIPPED by the 2026-07-10 out-of-corpus review (Major 4): a + fully absent 4-char ALPHABETIC token used to sit exactly on + coverage 0.8 / run 4 and VERIFY — the band's identity token was + never read. Absence of a name-like token now refuses; absence of + a numeric token at the same coverage/run (trailing DOB/MRN + dropout, the $-cost OCR direction) still verifies.""" + match = band_match("abcd efgh ijkl mnop qrst", "abcd efgh ijkl mnop") + assert match.coverage == pytest.approx(0.8) + assert match.max_uncovered_run == 4 + assert match.contradicted_chars == 0 + assert match.max_absent_alpha_token == 4 # the flipped signal + check = verify_target_identity( + "abcd efgh ijkl mnop qrst", "abcd efgh ijkl mnop" + ) + assert check.status == "mismatch" + # The same absence with a NUMERIC token (trailing-numerics + # dropout) keeps the old tolerance: class-weighted, not blanket. + check = verify_target_identity( + "abcd efgh ijkl mnop 1234", "abcd efgh ijkl mnop" ) - assert cov == pytest.approx(0.8) - assert uncovered == 4 - # ok at the boundary: - expected = "abcd efgh ijkl mnop qrst" - check = verify_target_identity(expected, "abcd efgh ijkl mnop XXXX") assert check.status == "verified" - # one char more of contiguous residue fails: + # A 5-char numeric absence still fails the generic run cap. check = verify_target_identity( - "abcd efgh ijkl mnop qrstu", "abcd efgh ijkl mnop XXXXX" + "abcd efgh ijkl mnop 12345", "abcd efgh ijkl mnop" ) assert check.status == "mismatch" - def test_tokenize(self): - assert tokenize(" Jane Li \n panel ") == ["jane", "li", "panel"] - assert tokenize("") == [] + def test_replacement_at_same_coverage_mismatches(self): + """The same 4-char gap with a foreign token IN ITS PLACE is a + replacement — contradiction budget (0) fails it even though + coverage and run cap alone would pass.""" + match = band_match( + "abcd efgh ijkl mnop qrst", "abcd efgh ijkl mnop wxyz" + ) + assert match.coverage == pytest.approx(0.8) + assert match.max_uncovered_run == 4 + assert match.contradicted_chars > 0 + check = verify_target_identity( + "abcd efgh ijkl mnop qrst", "abcd efgh ijkl mnop wxyz" + ) + assert check.status == "mismatch" + + def test_near_miss_similarity_boundary(self): + """3-char single-edit names sit at ratio 0.67 — the 0.62 + near-miss threshold must catch them ('Ted'/'Tad').""" + check = verify_target_identity( + "Smith, Ted 1985-03-12 M", "Smith, Tad 1985-03-12 M" + ) + assert check.status == "mismatch" + + +class TestOcrCanonical: + """Only characteristic OCR char-class confusions are equivalences; + semantic letter substitutions are not.""" + + def test_confusion_classes_are_equivalent(self): + assert ocr_canonical("paln") == ocr_canonical("pain") # l/i + assert ocr_canonical("hlgh") == ocr_canonical("high") + assert ocr_canonical("5ample") == ocr_canonical("sample") # 5/s + assert ocr_canonical("c0de") == ocr_canonical("code") # 0/o + assert ocr_canonical("cornpre") == ocr_canonical("compre") # rn/m + assert ocr_canonical("clinic") == ocr_canonical("dinic") # cl/d + + def test_semantic_edits_are_not_equivalent(self): + assert ocr_canonical("john") != ocr_canonical("joan") # a/o mid-token + assert ocr_canonical("phil") != ocr_canonical("philip") # extension + assert ocr_canonical("mark") != ocr_canonical("marc") + assert ocr_canonical("1985-03-12") != ocr_canonical("1985-03-13") # -- helpers --------------------------------------------------------------- diff --git a/tests/test_identity_corpus_rates.py b/tests/test_identity_corpus_rates.py new file mode 100644 index 0000000..01b692d --- /dev/null +++ b/tests/test_identity_corpus_rates.py @@ -0,0 +1,126 @@ +"""Regression net: identity matcher error rates on the FROZEN corpora. + +This is the false-negative-RATE guard the sibling reopening demanded +(third wrong-patient reopening; docs/validation/VALIDATION.md): instead +of pinning only the adversaries that found the last bug, the matcher is +held to measured rates on the full held-out corpora — v1 (4360 pairs), +v2 (2240 pairs, the classes v1 excluded by construction) and v3 (300 +pairs, identifier letter/digit collisions — the 5th-reopening class v1's +digit-only mrn_digit_swap could not surface). + +If a false-accept assertion fails, a wrong-entity band verifies again: +that is a P0, not a threshold to renegotiate. If the false-abort budget +fails, the matcher got stricter than the documented availability cost — +update docs/validation/IDENTITY_ROC.md (regenerate it) and LIMITS.md in +the same change. + +v2's INDISTINGUISHABLE label (the true row misread by a letter-letter +confusion, textually identical to a real sibling): abort is the correct +outcome for both readings, so a VERIFY there counts as a false accept +and an abort is a justified abort, never a false abort. +""" + +from __future__ import annotations + +from openadapt_flow.runtime.identity import verify_target_identity +from openadapt_flow.validation.adversary_corpus import ( + LABEL_DIFFERENT, + LABEL_SAME, + generate_corpus, +) +from openadapt_flow.validation.adversary_corpus_v2 import ( + LABEL_INDISTINGUISHABLE, + generate_corpus_v2, +) +from openadapt_flow.validation.adversary_corpus_v3 import generate_corpus_v3 + +# Measured at the ROC-chosen operating point (IDENTITY_ROC.md), AFTER the +# 5th-reopening identifier-suspect fix: +# v1 false aborts 28.2% — occlusion (93%), and the digit-class noise +# classes ocr_confusion (66%) and compound_noise (68%) ROSE from 33/38% +# because digit-class OCR noise that lands on an identifier token (DOB, +# MRN, phone) now aborts under the identifier-suspect rule (the true-row +# identifier-noise availability cost, disclosed in LIMITS.md), plus +# capitalized adjacent-row bleed (26%). Budget set with headroom for +# genuinely neutral refactors. +V1_FALSE_ABORT_BUDGET = 0.30 + +# v2 same_entity: digit_confusion_true_row ROSE from 0% to ~49% — the +# same identifier-noise cost (half those rows have an MRN the digit noise +# hit); lowercase bleed and hyphenated splits stay 0%. +V2_FALSE_ABORT_BUDGET = 0.18 + + +def test_zero_false_accepts_on_frozen_corpus_v1(): + """No different_entity pair may EVER verify. Zero, not a rate.""" + offenders = [ + (p.category, p.recorded, p.observed) + for p in generate_corpus() + if p.label == LABEL_DIFFERENT + and verify_target_identity(p.recorded, p.observed).status + == "verified" + ] + assert not offenders, ( + f"{len(offenders)} wrong-entity bands VERIFIED — wrong-patient " + f"P0 reopened. First offenders: {offenders[:5]}" + ) + + +def test_zero_false_accepts_on_frozen_corpus_v2(): + """Zero verifies across v2's different_entity AND indistinguishable + labels (a verify on an indistinguishable pair is a false accept for + its textually identical different-entity twin).""" + offenders = [ + (p.label, p.category, p.recorded, p.observed) + for p in generate_corpus_v2() + if p.label in (LABEL_DIFFERENT, LABEL_INDISTINGUISHABLE) + and verify_target_identity(p.recorded, p.observed).status + == "verified" + ] + assert not offenders, ( + f"{len(offenders)} wrong-entity/indistinguishable bands VERIFIED " + f"— out-of-corpus P0 reopened. First offenders: {offenders[:5]}" + ) + + +def test_zero_false_accepts_on_frozen_corpus_v3(): + """No identifier letter/digit collision (a DIFFERENT patient's + MRN/account number one confusable char apart) may EVER verify — the + 5th wrong-patient reopening. Zero, not a rate.""" + offenders = [ + (p.recorded, p.observed) + for p in generate_corpus_v3() + if p.label == LABEL_DIFFERENT + and verify_target_identity(p.recorded, p.observed).status + == "verified" + ] + assert not offenders, ( + f"{len(offenders)} identifier-collision bands VERIFIED — " + f"5th wrong-patient P0 reopened. First offenders: {offenders[:5]}" + ) + + +def test_v1_false_abort_rate_within_documented_budget(): + pairs = [p for p in generate_corpus() if p.label == LABEL_SAME] + aborted = sum( + verify_target_identity(p.recorded, p.observed).status != "verified" + for p in pairs + ) + rate = aborted / len(pairs) + assert rate <= V1_FALSE_ABORT_BUDGET, ( + f"v1 false-abort rate {rate:.2%} exceeds the documented " + f"{V1_FALSE_ABORT_BUDGET:.0%} budget" + ) + + +def test_v2_false_abort_rate_within_documented_budget(): + pairs = [p for p in generate_corpus_v2() if p.label == LABEL_SAME] + aborted = sum( + verify_target_identity(p.recorded, p.observed).status != "verified" + for p in pairs + ) + rate = aborted / len(pairs) + assert rate <= V2_FALSE_ABORT_BUDGET, ( + f"v2 false-abort rate {rate:.2%} exceeds the documented " + f"{V2_FALSE_ABORT_BUDGET:.0%} budget" + ) diff --git a/tests/test_identity_out_of_corpus.py b/tests/test_identity_out_of_corpus.py new file mode 100644 index 0000000..c3b51f3 --- /dev/null +++ b/tests/test_identity_out_of_corpus.py @@ -0,0 +1,353 @@ +"""Out-of-corpus reviewer probes for the identity band matcher. + +The 2026-07-10 review of the identity ROC (PR #16) verified thirteen +probes against the shipped matcher at the shipped operating point — all +thirteen VERIFIED, i.e. wrong-patient clicks, despite the corpus-v1 +headline of 0.000% false accepts. The corpus excluded every one of these +classes BY CONSTRUCTION (its labeling rule treats confusion-equivalent +bands as same-entity; short tokens and observed-superset shapes were +never generated), so the headline zero was partially tautological. + +This file commits the probes verbatim, all asserting MISMATCH, as the +acceptance criteria for the matcher redesign: + +- BLOCKER 1 — canonicalization equates distinct names: two DIFFERENT + patients whose names are OCR-confusion-equivalent (Neil/Nell via i/l, + Clay/Day via cl/d, Marnie/Mamie via rn/m, Gail/Gall via i/l) verified + as the same person. Param mode was NOT vulnerable (its raw + ``longest_run`` check rejects Neil→Nell) — the stricter raw pattern + already existed in the codebase. +- BLOCKER 2 — tokens shorter than MIN_BLOCK were invisible to the + contradiction rules: a changed middle initial, a flipped SEX column, + and changed 2-character names all verified. +- BLOCKER 3 — an observed-side superset always verified: context mode + had no unexplained-observed-token budget (param mode HAS one), so + appended tokens, a two-row OCR merge, and a wrong row that merely + MENTIONS the recorded patient (cc: lines, message rows) verified. +- MAJOR 4 — a fully absent 4-char first name sits exactly at the + uncovered-run cap: the band verified with the identity token never + read at all (this exact shape was previously PINNED AS CORRECT in + tests/test_identity.py::TestOperatingPoint — that pin is flipped in + the same change that makes these pass). + +FREEZE DISCIPLINE: this file is committed BEFORE the matcher redesign +and before corpus v2, so the acceptance criteria are on record first. +At the commit that introduces this file, the thirteen probe tests FAIL +(they reproduce the review); the safe-direction pins below PASS and +must keep passing. + +SECOND REVIEW (2026-07-10, 5th wrong-patient reopening — TestBlocker5 +below): the round-3 suspect budget guards NAME tokens only +(``_name_plausible`` is False for any token with a digit), so the rule +was OFF for MRNs/account numbers while the confusion canonicalization +(l/1, O/0, S/5, Z/2, B/8, g/9) still applied to them — an alphanumeric +identifier differing only by a letter/digit-confusable character +silently VERIFIED as same-entity, defeating MRN-based disambiguation of +same-name patients. These probes are committed FAILING (they reproduce +the review) before the identifier-suspect fix and corpus v3; the +identifier-noise "stays-verify" cases below are my chosen design's +documented true-row availability boundary. +""" + +from __future__ import annotations + +import pytest + +from openadapt_flow.runtime.identity import verify_target_identity + + +def _status(recorded: str, observed: str) -> str: + return verify_target_identity(recorded, observed).status + + +# -- BLOCKER 1: confusion-collided distinct names ----------------------------- + + +class TestBlocker1ConfusionCollidedNames: + """Two different patients whose names are confusion-equivalent must + never verify: when the only evidence for the name token is + OCR-confusion-equivalence, the honest outcome is an abort.""" + + def test_probe_01_neil_vs_nell_i_l(self): + assert _status( + "Smith, Neil 1985-03-12 M MRN A482913", + "Smith, Nell 1985-03-12 M MRN A482913", + ) == "mismatch" + + def test_probe_02_clay_vs_day_cl_d(self): + assert _status( + "Clay, Susan 1962-07-04 F MRN B771204", + "Day, Susan 1962-07-04 F MRN B771204", + ) == "mismatch" + + def test_probe_03_marnie_vs_mamie_rn_m(self): + assert _status( + "Baker, Marnie 1990-11-02 F", + "Baker, Mamie 1990-11-02 F", + ) == "mismatch" + + def test_probe_04_gail_vs_gall_i_l_shared_clinical_text(self): + assert _status( + "Gail Turner Comprehensive metabolic panel with lipid" + " screening High", + "Gall Turner Comprehensive metabolic panel with lipid" + " screening High", + ) == "mismatch" + + +# -- BLOCKER 2: short tokens invisible to contradiction ----------------------- + + +class TestBlocker2ShortTokenDiscriminators: + """1-2 char tokens that are raw-unequal and not confusion-equivalent + are affirmative contradiction, not ignorable residue.""" + + def test_probe_05_middle_initial_changed(self): + assert _status( + "Smith, John J 1985-03-12 M", + "Smith, John K 1985-03-12 M", + ) == "mismatch" + + def test_probe_06_sex_column_flipped(self): + assert _status( + "Belford, Phil 1985-03-12 M", + "Belford, Phil 1985-03-12 F", + ) == "mismatch" + + def test_probe_07_two_char_name_al_vs_bo(self): + assert _status( + "Belford, Al 1985-03-12 M", + "Belford, Bo 1985-03-12 M", + ) == "mismatch" + + def test_probe_08_two_char_name_jo_vs_ed(self): + assert _status( + "Smith, Jo 1985-03-12 M", + "Smith, Ed 1985-03-12 M", + ) == "mismatch" + + +# -- BLOCKER 3: observed-side superset ---------------------------------------- + + +class TestBlocker3ObservedSuperset: + """A live band that fully contains the recorded band plus extra + name-shaped tokens is not the recorded row: context mode needs an + unexplained-observed-token budget (param mode already had one).""" + + def test_probe_09_appended_middle_name(self): + assert _status( + "Belford, Phil 1985-03-12 M", + "Belford, Phil James 1985-03-12 M", + ) == "mismatch" + + def test_probe_10_two_row_ocr_merge(self): + assert _status( + "Belford, Phil 1985-03-12 M", + "Belford, Phil 1985-03-12 M Smith, Joan 1962-01-01 F", + ) == "mismatch" + + def test_probe_11_wrong_row_mentioning_recorded_patient(self): + # The realistic shape: a message/cc row about the recorded + # patient — mentions the whole recorded band, is not the row. + assert _status( + "Belford, Phil 1985-03-12 M", + "Dr. Smith, John re Belford, Phil 1985-03-12 M", + ) == "mismatch" + + +# -- MAJOR 4: absent identity token at the run cap ---------------------------- + + +class TestMajor4AbsentNameToken: + """A band must not verify when a name-like alphabetic token was never + read: absence of the identity token is worse than absence of + trailing numerics.""" + + def test_probe_12_absent_four_char_first_name(self): + assert _status( + "Belford, Phil 1985-03-12 M", + "Belford, 1985-03-12 M", + ) == "mismatch" + + def test_probe_13_synthetic_pure_alpha_absence_at_run_cap(self): + # The exact shape previously pinned VERIFIED in + # tests/test_identity.py::TestOperatingPoint:: + # test_pure_absence_boundary_at_run_cap — a fully absent 4-char + # alphabetic token, nothing in its place. + assert _status( + "abcd efgh ijkl mnop qrst", + "abcd efgh ijkl mnop", + ) == "mismatch" + + +# -- safe direction: shapes that are correct today and must stay so ---------- + + +class TestSafeDirectionPins: + """Correct outcomes that the redesign must not regress.""" + + def test_hyphenated_name_split_by_ocr_verifies(self): + assert _status( + "Smith-Jones, Carol 1985-03-12 F", + "Smith- Jones, Carol 1985-03-12 F", + ) == "verified" + + def test_bob_vs_robert_mismatches(self): + assert _status( + "Smith, Bob 1985-03-12 M", + "Smith, Robert 1985-03-12 M", + ) == "mismatch" + + def test_alison_vs_allison_contradiction_mismatches(self): + assert _status( + "Smith, Alison 1985-03-12 F", + "Smith, Allison 1985-03-12 F", + ) == "mismatch" + + def test_mrn_edit_mismatches(self): + assert _status( + "Belford, Phil 1985-03-12 M MRN A123456", + "Belford, Phil 1985-03-12 M MRN A123465", + ) == "mismatch" + + def test_dob_edit_mismatches(self): + assert _status( + "Belford, Phil 1985-03-12 M", + "Belford, Phil 1985-03-13 M", + ) == "mismatch" + + def test_digit_class_homoglyph_misread_verifies(self): + # Digit/symbol-involving confusions cannot be a different NAME + # (human names contain no digits): genuine OCR noise, verified. + assert _status( + "Belford, Phil 1985-03-12 M MRN A123456", + "Be1ford, Phi1 1985-03-12 M MRN A123456", + ) == "verified" + + def test_digit_class_jitter_on_non_name_tokens_verifies(self): + assert _status( + "Jane Sample Knee pain referral High", + "Jane 5ample Knee pain referral High", + ) == "verified" + + def test_param_mode_raw_run_still_rejects_neil_to_nell(self): + # Param mode was NOT vulnerable to Blocker 1: the raw + # longest_run check rejects Neil→Nell without canonicalization. + check = verify_target_identity( + "Open chart for Neil (active)", + "Open chart for Nell (active)", + params={"patient": "Neil"}, + param_examples={"patient": "Neil"}, + ) + assert check.status == "mismatch" + assert check.mode == "param" + + +class TestBlocker5IdentifierLetterDigitCollision: + """5th wrong-patient reopening (second review): an alphanumeric + identifier differing only by a letter/digit-confusable character + (l/1, O/0, S/5, Z/2, B/8, g/9) canonicalizes equal, so a DIFFERENT + patient's MRN/account number verified as same-entity. The chosen + fix (identifier-suspect: a confusion-only match on a RECORDED token + that contains a digit is suspect -> abort) makes all four abort. + + Design note: the fix is scoped to tokens the RECORDING shows as + identifiers (recorded token contains a digit). It is NOT a blanket + "any digit in the observed token" rule — that would abort names + OCR'd with a digit-class confusion ('Belford' -> 'Be1ford'), which + must stay verified (TestSafeDirectionPins). There is no wrong-patient + residual: unlike a corroboration-escape design, a confusion-differing + identifier aborts even when name and DOB raw-match, so two same-name + patients distinguished only by an OCR-confusable MRN char never + verify.""" + + def test_probe_14_mrn_l_vs_1(self): + assert _status( + "Belford Jane MRN l482913 Cardiology", + "Belford Jane MRN 1482913 Cardiology", + ) == "mismatch" + + def test_probe_15_mrn_O_vs_0(self): + assert _status( + "Chen Wei MRN O52133 Neurology", + "Chen Wei MRN 052133 Neurology", + ) == "mismatch" + + def test_probe_16_acct_S_vs_5(self): + assert _status( + "Ramirez Ana Acct S5821 Billing", + "Ramirez Ana Acct 55821 Billing", + ) == "mismatch" + + def test_probe_17_same_name_mrn_sole_discriminator(self): + # The canonical clinical case: two same-name patients whose ONLY + # difference is one OCR-confusable MRN char. Name raw-matches; + # the MRN is the sole discriminator; it must abort regardless + # (this is exactly the case a corroboration-escape design would + # wrongly allow). + assert _status( + "Doe John MRN AO1234", + "Doe John MRN A01234", + ) == "mismatch" + + def test_probe_18_fires_in_param_mode(self): + # MRN as a parameter: the param-mode raw longest_run tolerated a + # single confusable char in a long identifier, then band_match + # verified the substituted band. The identifier-suspect rule in + # band_match closes it in param mode too. + check = verify_target_identity( + "Belford Jane MRN l482913 Cardiology", + "Belford Jane MRN 1482913 Cardiology", + params={"mrn": "l482913"}, + param_examples={"mrn": "l482913"}, + ) + assert check.status == "mismatch" + + +class TestBlocker5Controls: + """The letter/digit boundary is precise: all-digit differences and + identifier-side noise boundaries must behave as designed.""" + + def test_all_digit_mrn_difference_still_mismatches(self): + # Control: 748291 vs 748292 is NOT a confusion equivalence (2 and + # 1 are not in one confusion class), so it mismatches via + # coverage/contradiction, NOT the suspect rule. + assert _status( + "Doe John MRN 748291", + "Doe John MRN 748292", + ) == "mismatch" + + def test_raw_equal_identifier_still_verifies(self): + # A raw-identical MRN with only name-side digit-class noise: the + # identifier is not confusion-differing, so it verifies. + assert _status( + "Belford, Phil 1985-03-12 M MRN A123456", + "Be1ford, Phi1 1985-03-12 M MRN A123456", + ) == "verified" + + def test_true_row_identifier_noise_aborts_availability_cost(self): + # DOCUMENTED AVAILABILITY COST of the chosen (safety-first) + # design: when the TRUE row's own MRN is OCR-garbled by a + # letter/digit-confusable char, we abort rather than gamble on + # identity. Indistinguishable from a different-patient row at + # band level; the halt is the cheap direction. Disclosed in + # docs/LIMITS.md. + assert _status( + "Belford, Phil 1985-03-12 M MRN A01234", + "Belford, Phil 1985-03-12 M MRN AO1234", + ) == "mismatch" + + +class TestDisclosedResidualEdges: + """Known residual behavior, disclosed in docs/LIMITS.md rather than + fixed: pinned here so a silent change is visible.""" + + def test_ann_marie_vs_annmarie_verifies_via_join_rule(self): + # The token-join rule (OCR splits one token into two) cannot + # distinguish 'Ann Marie' from 'Annmarie' — raw-equal after + # concatenation. Two real patients with those names verify. + assert _status( + "Annmarie Cox 1985-03-12 F", + "Ann marie Cox 1985-03-12 F", + ) == "verified" diff --git a/tests/test_replayer.py b/tests/test_replayer.py index af4f252..a5e6fee 100644 --- a/tests/test_replayer.py +++ b/tests/test_replayer.py @@ -718,8 +718,11 @@ class OcrLine: # Default region sits on the resolved point's row (resolving_vision # resolves to (110, 105)): identity verification reads only the lines # of the point's OWN text row (identity.lines_near_point), so fakes - # must place their lines there to be seen. - def __init__(self, text, region=(0, 95, 400, 20), confidence=0.9): + # must place their lines there to be seen — and OUTSIDE the target's + # own crop (the anchor region (100, 100, 50, 20) translated to the + # resolved point), which the replayer excludes from the live band + # exactly as the compiler excluded it from the recorded band. + def __init__(self, text, region=(160, 95, 240, 20), confidence=0.9): self.text = text self.region = region self.confidence = confidence @@ -832,9 +835,11 @@ def test_identity_one_row_off_resolution_mismatches(bundle, run_dir): sits one row up (y~75) and the resolved row is a different entity.""" vision = resolving_vision() vision.ocr_lines = [ - OcrLine("Jane Sample Knee pain referral High", region=(0, 65, 400, 20)), + OcrLine( + "Jane Sample Knee pain referral High", region=(160, 65, 240, 20) + ), OcrLine("Taylor Duplicate Knee pain referral High", - region=(0, 95, 400, 20)), + region=(160, 95, 240, 20)), ] backend = FakeBackend() step = context_click_step("Jane Sample Knee pain referral High") @@ -902,6 +907,52 @@ def test_identity_unreadable_proceeds_flagged_when_reversible(bundle, run_dir): assert report.results[0].identity.status == "unreadable" +def test_identity_band_excludes_targets_own_label(bundle, run_dir): + """The live band must be extracted like the recorded band: the + target's own label (a line inside the anchor crop translated to the + resolved point) is excluded, so it neither verifies by itself nor + trips the unexplained-name budget as an observed-side extra.""" + vision = resolving_vision() + vision.ocr_lines = [ + # The label itself: inside the anchor crop (100, 100, 50, 20) + # at the resolved point — must be excluded from the band. + OcrLine("Belford,", region=(102, 98, 46, 16)), + OcrLine("Jane Sample Knee pain referral High"), + ] + backend = FakeBackend() + step = context_click_step("Jane Sample Knee pain referral High") + report = Replayer(backend, vision=vision).run( + Workflow(name="wf", steps=[step]), bundle_dir=bundle, run_dir=run_dir + ) + assert report.success is True + assert report.results[0].identity.status == "verified" + + +def test_identity_band_excludes_volatile_lines_at_replay(bundle, run_dir): + """A live clock/date cell on the resolved row (volatile relative to + the replay date) is dropped from the observed band, mirroring the + compiler's record-time volatility filter — it must not register as + unexplained observed tokens ('Jul' is name-shaped to OCR).""" + from datetime import date + + today = date.today() + vision = resolving_vision() + vision.ocr_lines = [ + OcrLine("Jane Sample Knee pain referral High"), + OcrLine( + f"{today.strftime('%b')} {today.day}, {today.year} 3:01", + region=(160, 96, 100, 18), + ), + ] + backend = FakeBackend() + step = context_click_step("Jane Sample Knee pain referral High") + report = Replayer(backend, vision=vision).run( + Workflow(name="wf", steps=[step]), bundle_dir=bundle, run_dir=run_dir + ) + assert report.success is True + assert report.results[0].identity.status == "verified" + + def test_identity_unreadable_blocks_irreversible_step(bundle, run_dir): vision = resolving_vision() vision.ocr_lines = [] @@ -1272,3 +1323,57 @@ def test_structural_postcondition_passes_unverified_on_plain_backend( bundle_dir=bundle, run_dir=run_dir, ) assert report.success is True + + +# -- identity-protection coverage audit (run start) --------------------------- + + +def _coverage_workflow() -> Workflow: + armed = click_step("s_armed") + armed.anchor.context_text = "Belford, Phil 1985-03-12 M" + armed.identity_armed = True + unarmed = click_step("s_unarmed", ocr_text="") + unarmed.identity_armed = False + unarmed.identity_unarmed_reason = ( + "no readable text in the target's row band at compile time " + "(icon-only or unlabeled row)" + ) + legacy_unarmed = click_step("s_legacy") # pre-metric bundle: fields None + keyboard = Step(id="s_key", intent="press Enter", action=ActionKind.KEY, + key="Enter") + return Workflow( + name="coverage", steps=[armed, unarmed, legacy_unarmed, keyboard] + ) + + +def test_identity_coverage_recorded_on_report(): + """The report states N of M applicable steps armed and lists every + unarmed click by id with its reason — computed from the whole bundle + at run start, before any step executes.""" + report = RunReport(workflow_name="coverage", started_at="t") + Replayer._record_identity_coverage(_coverage_workflow(), report) + assert report.identity_applicable_steps == 3 # keyboard step excluded + assert report.identity_armed_steps == 1 + ids = [u.step_id for u in report.identity_unarmed] + assert ids == ["s_unarmed", "s_legacy"] + assert "icon-only" in report.identity_unarmed[0].reason + # A pre-metric bundle still lists the step, with an honest reason. + assert "predates" in report.identity_unarmed[1].reason + + +def test_identity_coverage_counts_anchored_type_steps(): + type_step = Step( + id="s_type", intent="type note", action=ActionKind.TYPE, + text="hello", + anchor=Anchor( + template="templates/btn.png", region=(0, 0, 10, 10), + click_point=(5, 5), context_text="Notes field row text here", + ), + ) + report = RunReport(workflow_name="coverage", started_at="t") + Replayer._record_identity_coverage( + Workflow(name="w", steps=[type_step]), report + ) + assert report.identity_applicable_steps == 1 + assert report.identity_armed_steps == 1 + assert report.identity_unarmed == [] diff --git a/tests/test_report.py b/tests/test_report.py index c1488a1..8926cba 100644 --- a/tests/test_report.py +++ b/tests/test_report.py @@ -18,6 +18,7 @@ RunReport, Step, StepResult, + UnarmedStep, Workflow, ) from openadapt_flow.report import render_bench_report, render_run_report @@ -118,6 +119,15 @@ def _make_run_dir(tmp_path: Path, *, success: bool) -> Path: model_calls=2, est_model_cost_usd=0.0135, total_ms=1580.0, + identity_applicable_steps=3, + identity_armed_steps=2, + identity_unarmed=[ + UnarmedStep( + step_id="step_save", + intent="click 'Save Encounter'", + reason="no readable text in the target's row band", + ) + ], ) report.save(run_dir) return run_dir @@ -139,6 +149,13 @@ def test_run_report_success(tmp_path: Path) -> None: # Params. assert "## Parameters" in md assert "`note`" in md and "Follow-up in 2 weeks" in md + # Identity-protection coverage: armed count + unarmed steps by id + # with the reason — an unarmed click proceeds with NO identity check. + assert "## Identity protection coverage" in md + assert "**2 of 3 click steps identity-armed.**" in md + assert "no identity verification" in md + assert "| `step_save` " in md + assert "no readable text in the target's row band" in md # Per-step table columns and rows. assert ( "| # | Step | Intent | Rung | Confidence | Verified | ms "