Submission Details
Challenge: modInv
Submitted by: GasStationManager
Submitted at: 2024-11-24 10:05:21
Code:
import Mathlib.Data.Prime.Defs
def modInv(a: Nat) (p:Nat)(hp:p.Prime): Option Nat
:=sorry
First Theorem Proof:
theorem modInv_correct(a:Nat) (p:Nat)(hp:p.Prime):
(∃ x:Nat, (a*x)%p=1)->(a*(modInv a p hp).get!)%p=1
:=sorry
Status: Incorrect
Feedback:
found a problem in /root/CodeProofTheArena/temp/tmpzhpnx47j/proof.olean uncaught exception: sorryAx is not in the allowed set of standard axioms ------------------ Replaying /root/CodeProofTheArena/temp/tmpzhpnx47j/target.olean Finished imports Finished replay --- theorem modInv_correct ∀ (a p : ℕ) (hp : Nat.Prime p), (∃ x, a * x % p = 1) → a * (modInv a p hp).get! % p = 1 #[propext, sorryAx] --- def modInv ℕ → (p : ℕ) → Nat.Prime p → Option ℕ := fun (a : Nat) (p : Nat) (hp : Nat.Prime p) => sorryAx.{1} (Option.{0} Nat) Bool.false #[propext, sorryAx] ------------------ Replaying /root/CodeProofTheArena/temp/tmpzhpnx47j/proof.olean Finished imports Finished replay --- theorem modInv_correct ∀ (a p : ℕ) (hp : Nat.Prime p), (∃ x, a * x % p = 1) → a * (modInv a p hp).get! % p = 1 #[propext, sorryAx] --- def modInv ℕ → (p : ℕ) → Nat.Prime p → Option ℕ := fun (a : Nat) (p : Nat) (hp : Nat.Prime p) => sorryAx.{1} (Option.{0} Nat) Bool.false #[propext, sorryAx]
Second Theorem Proof:
theorem modInv_none(a:Nat) (p:Nat)(hp:p.Prime): (Not (∃ x, (a*x)%p=1))-> modInv a p hp=none
:=sorry
Status: Incorrect