Closed kappelmann closed 5 years ago
(as much as I want to "break the system" again next month, I think I've annoyed you too much already so I'll mention it now) I think
axiom «quot.sound : a» : false
theorem soundness_bug : false := «quot.sound : a»
still works even with this patch?
And now I am very confused, when I feed that input in even leanchecker looks like it gets confused and spits out just quot.sound : false
?
If that wasn't the case maybe ^axiom (.*?(?= :)) : [^:]*$
would work?
Uff, yes you are right Alex - the leanchecker only spits out quot.sound : false
in this case, which makes it impossible to detect the cheat at this stage. I posted this for an open discussion on Zulip
Fixed this issue (:crossed_fingers:) by comparing the whole line containing an axiom. See here. Alternatively, one could use a different checker like trepplein (see Zulip discussion), but I had issues setting it up at first, and it requires more dependencies, like sbt. I am in favour in keeping the setup simple.
I also updated mathlib. @maxhaslbeck do not forget to merge before the competition.
The only way I am aware to solve the global notation cheat is to
defs.lean
defs.lean
incheck.lean
BEFOREsubmission.lean
so that the elaborator will fail in case of a notation cheat - see this Zulip discussion.