Zulip Chat Archive
Stream: general
Topic: (P → (Q → R)) → (P → Q) → (P → R)
Kevin Buzzard (Nov 09 2019 at 23:47):
import logic.basic tactic.library_search example (P Q R : Prop) : (P → (Q → R)) → (P → Q) → (P → R) := by library_search -- fails
I thought that this was a thing. It doesn't have a name? I was taught as an undergraduate that it was one of the three axioms of classical logic, the other two being LEM and P -> Q -> P.
Kenny Lau (Nov 09 2019 at 23:48):
but with context we are essentially using Fitch system where the only axiom is LEM
François G. Dorais (Nov 10 2019 at 00:51):
I believe some people call this bind
. (re: monad)
Marc Huisinga (Nov 10 2019 at 01:05):
in my formal systems lecture it was called the german equivalent of "distribute"
Scott Morrison (Nov 10 2019 at 06:18):
I'm not sure I expected library_search
to work here, but { intros, library_search }
certainly should, simply because { intros, solve_by_elim }
should work, because
import logic.basic tactic.library_search example (P Q R : Prop) : (P → (Q → R)) → (P → Q) → (P → R) := begin intros, apply a, exact a_2, apply a_1, exact a_2, end
works. However solve_by_elim
fails, which is surely a bug. :-(
Mario Carneiro (Nov 10 2019 at 07:29):
I think it is in init.core
, although it might be for Type only
Mario Carneiro (Nov 10 2019 at 07:31):
example (P Q R : Type) : (P → (Q → R)) → (P → Q) → (P → R) := combinator.S
Mario Carneiro (Nov 10 2019 at 07:32):
I know this theorem as "axiom 2". Thanks mathematicians
Mario Carneiro (Nov 10 2019 at 07:32):
"the S combinator" isn't much better though
Chris B (Nov 20 2019 at 03:19):
If the Sort/Prop version ends up getting included in something permanent, Frege
seems like a pretty good choice.
Description: Axiom Frege. Axiom A2 of [Margaris] p. 49 ... This axiom was part of Frege's original system and is known as Frege in the literature
Last updated: Dec 20 2023 at 11:08 UTC