Theorems / novel_fun_07

Authored

Functions · medium

Statement, exactly as the model and Lean see it
theorem lg_target {α β : Type*} (f : α → β) (hf : Function.Surjective f) (g h : β → α) (hg : g ∘ f = h ∘ f) : g = h := by
Source
Written for LeanGraph, reference proof certified
Premises used by the reference proof
1

Traces

Each configuration's full record: what was retrieved, what the model wrote, what Lean said back.

Verified0 model calls · 16 Lean checks · $0.00000

Attempts

  1. attempt 1Wrong tactic
    Proof
    rfl
    What Lean printed (this is all the model sees on repair)
    4:2: error: Tactic `rfl` failed: The left-hand side
      g
    is not definitionally equal to the right-hand side
      h
    
    α : Type u_1
    β : Type u_2
    f : α → β
    hf : Function.Surjective f
    g h : β → α
    hg : g ∘ f = h ∘ f
    ⊢ g = h
  2. attempt 2Other
    Proof
    decide
    What Lean printed (this is all the model sees on repair)
    4:2: error: Expected type must not contain free variables
      g = h
    
    Hint: Use the `+revert` option to automatically clean up and revert free variables
  3. attempt 3Valid but mathematically wrong
    Proof
    norm_num
    What Lean printed (this is all the model sees on repair)
    3:119: error: unsolved goals
    α : Type u_1
    β : Type u_2
    f : α → β
    hf : Function.Surjective f
    g h : β → α
    hg : g ∘ f = h ∘ f
    ⊢ g = h
  4. attempt 4Wrong tactic
    Proof
    simp
    What Lean printed (this is all the model sees on repair)
    4:2: error: `simp` made no progress
  5. attempt 5Wrong tactic
    Proof
    ring
    What Lean printed (this is all the model sees on repair)
    4:2: error: `ring_nf` made no progress on the goal
  6. attempt 6Wrong tactic
    Proof
    linarith
    What Lean printed (this is all the model sees on repair)
    4:2: error: linarith failed to find a contradiction
    α : Type u_1
    β : Type u_2
    f : α → β
    hf : Function.Surjective f
    g h : β → α
    hg : g ∘ f = h ∘ f
    ⊢ False
    failed
  7. attempt 7Wrong tactic
    Proof
    nlinarith
    What Lean printed (this is all the model sees on repair)
    4:2: error: linarith failed to find a contradiction
    α : Type u_1
    β : Type u_2
    f : α → β
    hf : Function.Surjective f
    g h : β → α
    hg : g ∘ f = h ∘ f
    ⊢ False
    failed
  8. attempt 8Wrong tactic
    Proof
    positivity
    What Lean printed (this is all the model sees on repair)
    4:2: error: not a positivity goal
  9. attempt 9Wrong tactic
    Proof
    omega
    What Lean printed (this is all the model sees on repair)
    4:2: error: omega could not prove the goal:
    No usable constraints found. You may need to unfold definitions so `omega` can see linear arithmetic facts about `Nat` and `Int`, which may also involve multiplication, division, and modular remainder by constants.
  10. attempt 10Wrong tactic
    Proof
    field_simp
    What Lean printed (this is all the model sees on repair)
    4:2: error: `field_simp` made no progress on the goal
  11. attempt 11Wrong tactic
    Proof
    tauto
    What Lean printed (this is all the model sees on repair)
    4:2: error: Tactic `tauto` failed
    
    α : Type u_1
    β : Type u_2
    f : α → β
    hf : Function.Surjective f
    g h : β → α
    hg : g ∘ f = h ∘ f
    ⊢ g = h
  12. attempt 12Wrong tactic
    Proof
    simp_all
    What Lean printed (this is all the model sees on repair)
    4:2: error: simp_all made no progress
  13. attempt 13Wrong tactic
    Proof
    aesop
    What Lean printed (this is all the model sees on repair)
    4:2: error: Tactic `aesop` failed, made no progress
    Initial goal:
      α : Type u_1
      β : Type u_2
      f : α → β
      hf : Function.Surjective f
      g h : β → α
      hg : g ∘ f = h ∘ f
      ⊢ g = h
  14. attempt 14Other
    Proof
    grind
    What Lean printed (this is all the model sees on repair)
    4:2: error: `grind` failed
    case grind
    α : Type u_1
    β : Type u_2
    f : α → β
    hf : Function.Surjective f
    g h : β → α
    hg : g ∘ f = h ∘ f
    h_1 : ¬g = h
    w : β
    h_2 : ¬g w = h w
    ⊢ False
    [grind] Goal diagnostics
      [facts] Asserted facts
        [prop] Function.Surjective f
        [prop] g ∘ f = h ∘ f
        [prop] ¬g = h
        [prop] ∃ x, ¬g x = h x
        [prop] ¬g w = h w
      [eqc] True propositions
        [prop] Function.Surjective f
        [prop] ∃ x, ¬g x = h x
      [eqc] False propositions
        [prop] g = h
        [prop] g w = h w
      [eqc] Equivalence classes
        [eqc] {g ∘ f, h ∘ f}
      [cases] Case analyses
        [cases] [1/1]: ∃ 
  15. attempt 15Wrong tactic
    Proof
    norm_num <;> linarith
    What Lean printed (this is all the model sees on repair)
    4:15: error: linarith failed to find a contradiction
    α : Type u_1
    β : Type u_2
    f : α → β
    hf : Function.Surjective f
    g h : β → α
    hg : g ∘ f = h ∘ f
    ⊢ False
    failed
  16. attempt 16Verified
    Proof
    exact?

Verified proof

theorem lg_target {α β : Type*} (f : α → β) (hf : Function.Surjective f) (g h : β → α) (hg : g ∘ f = h ∘ f) : g = h := by
  exact?

Axioms used: Quot.sound

Reference proof

The proof we wrote and certified before any model ran.

exact hf.injective_comp_right hg