bedrock.prelude.axioms.funext
(*
* Copyright (c) 2022 BedRock Systems, Inc.
*
* This software is distributed under the terms of the BedRock Open-Source License.
* See the LICENSE-BedRock file in the repository root for details.
*)
(*
Re-export functional extensionality axiom; this is a well-understood consistent
extension of Rocq.
*)
Require Export Stdlib.Logic.FunctionalExtensionality.
Require Import bedrock.prelude.base.
Ltac funext := apply: functional_extensionality.
Ltac funext_dep := apply: functional_extensionality_dep.
Lemma funext_equiv {A B C} (f : A -> B -> C) a1 a2 :
(f a1 = f a2) <-> ∀ b : B, f a1 b = f a2 b.
Proof.
split. by move->.
move=>?. by funext.
Qed.
* Copyright (c) 2022 BedRock Systems, Inc.
*
* This software is distributed under the terms of the BedRock Open-Source License.
* See the LICENSE-BedRock file in the repository root for details.
*)
(*
Re-export functional extensionality axiom; this is a well-understood consistent
extension of Rocq.
*)
Require Export Stdlib.Logic.FunctionalExtensionality.
Require Import bedrock.prelude.base.
Ltac funext := apply: functional_extensionality.
Ltac funext_dep := apply: functional_extensionality_dep.
Lemma funext_equiv {A B C} (f : A -> B -> C) a1 a2 :
(f a1 = f a2) <-> ∀ b : B, f a1 b = f a2 b.
Proof.
split. by move->.
move=>?. by funext.
Qed.