Every method that verifies AI output returns a list of claim result dicts — one per extracted claim. This page documents every field in those dicts. The exact fields present depend on the claim’sDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/TangibleResearch/Halgorithem/llms.txt
Use this file to discover all available pages before exploring further.
type and status.
Common fields
These fields are present on every claim result regardless of type or status.1-indexed position of the claim in the AI output. Claims are numbered in the order they appear after sentence splitting. Claims filtered out by
is_meaningful_claim are not included in results and do not consume claim IDs.The extracted claim sentence as it appeared in the AI output, after cleaning.
Verification outcome. One of:
| Value | Meaning |
|---|---|
SUPPORTED | Cosine similarity ≥ 0.65 against at least one truth chunk |
WEAK_SUPPORT | Cosine similarity ≥ threshold (default 0.30) but < 0.65 |
CONTRADICTION | High similarity to a chunk that contradicts the claim (number or negation mismatch) |
HALLUCINATION | No chunk scored above the threshold |
Best cosine similarity score found across all truth chunks. Range is 0.0–1.0 for typical semantic similarity (technically -1.0 to 1.0 for cosine). A score of 0.0 indicates no matching chunk was found.
Claim classification. One of:
| Value | Meaning |
|---|---|
SOURCE | Verified by semantic similarity against truth document chunks |
MATH | Contains an arithmetic expression that is evaluated directly (e.g. 2 + 2 = 4) |
Proper nouns and numbers found in the claim that do not appear in any truth document token set (accounting for synonyms). An empty list means all verifiable terms were found in the truth docs. Only meaningful for
SOURCE claims.SOURCE claim fields
Present on allSOURCE type claims (i.e., when type is "SOURCE").
The
file_id of the truth document whose chunk scored highest against this claim. null if no matching chunk was found (status will be HALLUCINATION).The file path or URL of the best matching source document. Corresponds to the
file_path field on the source document dict. null if no matching chunk was found.The
chunk_id within the matched source document. null if no matching chunk was found.The raw text of the best matching chunk. Empty string if no matching chunk was found.
CONTRADICTION-specific fields
Present whenstatus is "CONTRADICTION".
The detected contradiction type. One of:
| Value | Trigger condition |
|---|---|
"Number mismatch" | A number in the claim is close in magnitude to a number in the matching chunk but not equal |
"Negation mismatch" | The claim and the matching chunk differ in negation (one asserts, the other denies) |
Numbers extracted from the claim. Present on
"Number mismatch" contradictions. Each element is a string representation of the number as it appeared in the text.Numbers extracted from the best matching chunk. Present on
"Number mismatch" contradictions.MATH claim fields
Present whentype is "MATH" and status is "CONTRADICTION".
The evaluated value of the left-hand side of the expression (e.g. for
2 + 2 = 5, expected is 4.0).The evaluated value of the right-hand side of the expression (e.g. for
2 + 2 = 5, got is 5.0).Full example
The following shows a complete claim result dict for aSOURCE claim with a number mismatch contradiction:
Year values (1400–2100) and small ordinal numbers (≤ 31) are intentionally excluded from number mismatch detection to avoid false positives on dates and list items. Only numerically close but unequal values that fall outside these ranges trigger a
"Number mismatch" contradiction.Status thresholds summary
The following table summarises howscore and detected mismatches map to status:
| Condition | Status |
|---|---|
| Number mismatch detected | CONTRADICTION |
| Negation mismatch detected and score ≥ threshold | CONTRADICTION |
| score ≥ 0.65 | SUPPORTED |
| threshold ≤ score < 0.65 | WEAK_SUPPORT |
| score < threshold | HALLUCINATION |