Require Import classical_logic.Require Import function.Require Import power.Set Implicit Arguments.Recordpartial_function (AB : Type) : Type :=
make_partial_function {
dom : power A;
f :> { a : A | a ∈ dom } -> B;
}.Notation"A ⇀ B" := (partial_function A B) (at level50).
Recordpartial_function (AB : Type) : Type := make_partial_function
{ dom : power A; f : {a : A | a ∈ dom} -> B }.
Arguments partial_function (A B)%_type_scope
Arguments make_partial_function [A B]%_type_scope dom f%_function_scope
Arguments dom [A B]%_type_scope p _
Arguments f [A B]%_type_scope p _
Inductiveoption (A : Type) : Type :=
| some : A -> option A
| none : option A.Arguments none {_}.Definitionis_some {A : Type} (x : option A) : Prop :=
match x with
| some _ => True
| none => Falseend.