Zulip Chat Archive
Stream: new members
Topic: Specializing weak implicit arguments
Li Yao'an (Nov 21 2019 at 09:36):
I'm trying to work with the inductive definition in mathlib. If I didn't misinterpret the notation, it uses weak implicit arguments in the forall quantifier, which I am having trouble trying to specialize, since unlike normal arguments, h a does not specialize the hypothesis with argument a. The exact example I'm trying to do is below. How does one deal with these weak implicit arguments?
def bijective' {α β} (f : α → β) : Prop := ∃ f' : β → α, (∀ a : α, f' (f a) = a) ∧ (∀ b : β, f (f' b) = b) theorem bijective_iff_bijective' {α β} (f : α → β) : bijective f ↔ bijective' f := begin dunfold bijective bijective' surjective injective, split, {intro h, cases h with h1 h2, existsi λ b, classical.some (h2 b), simp, split, {intro a, have h3 := some_spec (h2 (f a)), sorry}, -- How to resolve this? {sorry}}, {sorry}, done end
Mario Carneiro (Nov 21 2019 at 11:55):
You don't really need to in this case, you can just fill the sorry
with exact h1 h3
Mario Carneiro (Nov 21 2019 at 11:56):
but you can apply a weak implicit using @h1 (some _) a
Kevin Buzzard (Nov 21 2019 at 13:35):
Note also the choose
tactic:
import tactic.interactive open function def bijective' {α β} (f : α → β) : Prop := ∃ f' : β → α, (∀ a : α, f' (f a) = a) ∧ (∀ b : β, f (f' b) = b) theorem bijective_iff_bijective' {α β} (f : α → β) : bijective f ↔ bijective' f := begin split, { intro h, choose f' h' using h.2, use f', split, sorry, exact h', }, sorry end
Last updated: Dec 20 2023 at 11:08 UTC