(** This file collects some axioms used throughout the Mechanized Semantic Library development. This file was developed in 2010 by Andrew W. Appel and Xavier Leroy, and harmonizes the axioms used by MSL and by the CompCert project. *)
Require Coq.Logic.ClassicalFacts.
(** * Extensionality axioms *)
(** The following [Require Export] gives us functional extensionality for dependent function types: << Axiom functional_extensionality_dep : forall {A} {B : A -> Type}, forall (f g : forall x : A, B x), (forall x, f x = g x) -> f = g. >> and, as a corollary, functional extensionality for non-dependent functions: << Lemma functional_extensionality {A B} (f g : A -> B) : (forall x, f x = g x) -> f = g. >> *)
Require Export Coq.Logic.FunctionalExtensionality.
(** For compatibility with earlier developments, [extensionality] is an alias for [functional_extensionality]. *)

(* Specifications: *)
Lemma extensionality:
forall (A B: Type) (f g : A -> B),  (forall x, f x = g x) -> f = g.