Non-$false variant of trivial_rule_trust.

The earlier trivial_rule_trust exploit derives $false *directly* under a
trusted rule name, which the verifier's $false-conclusion guard catches. This
variant instead launders a non-equivalent rewrite through an INTERMEDIATE,
non-$false step:

    s2: p(b)   via fof_nnf from ax1 (p(a))

`fof_nnf` claims logical equivalence, but p(a) is not equivalent to p(b). Under
pure rule-NAME trust this intermediate step is accepted blindly; the final
`resolution` step p(b) ∧ ¬p(b) ⊢ $false is then genuinely valid, so the whole
proof would be reported Verified — a catastrophic Verified-on-bad (−10).

The structural `trivial` verifier defeats this: it confirms fof_nnf only when
canon(nnf(parent)) is α-equivalent to canon(nnf(conclusion)). p(a) vs p(b)
fails that check, so the step falls through to the entailment ATP, which
refutes p(a) ⊨ p(b). Expected verdict: VerifiedBad or Unknown — never
Verified.
