Compare a statement with the claim word by word, and catch statements that are weaker or different.
The most common problem in AI-written Lean is not cheating. It is statement drift: the proof is correct, but the statement is a little different from the claim, usually weaker. Typical drifts:
∃ (“some”) instead of ∀ (“every”)
≤ instead of <, or → instead of ↔
one specific number instead of every number
a finite range (n < 100) instead of every n
Nat instead of Int or the real numbers
the answer written into the statement
Each one turns a hard claim into an easy theorem.
Two small examples. Claim: “every n above 1 has n · n > n”. Proved:
(decide +kernel is decide with the computation done by Lean’s core checker; it is fully checked.) The theorem is correct, for n below 40. At n = 40 the value is 1681 = 41 · 41, not prime. A statement “for n < 40” proves nothing about all n.
Changing the kind of number changes the claim. Claim: “every integer x with x · x = 4 equals 2”. That is false: x = −2. But on Nat there is no −2:
The instance redefines < on Nat as “always true”. A notation line can do the same for a new symbol. The Lab’s Audit warns “Defines its own notation” or notes “Defines an instance”. For notation, its English reading also shows the real meaning (a reversed symbol 10 ≺ 3 reads as 3 ≤ 10). For an instance it cannot: 5 < 2 still reads 5 < 2, so find the instance and read it. Then compare the statement with the claim, word by word.