Thm* A:Type, B:(A Type), f:a:A fp-> B(a), eq:EqDecider(A), x:A.
Thm* x dom(f)  f(x) B(x) | [fpf-ap_wf] |
Thm* eq:EqDecider(Y), f:x:X fp-> Top, x:Y.
Thm* strong-subtype(X;Y)  x dom(f)  x X | [fpf-dom-type2] |
Thm* eq:EqDecider(Y), f:x:X fp-> Top, x:Y.
Thm* strong-subtype(X;Y)  x dom(f)  x X | [fpf-dom-type] |
Thm* eq1,eq2:EqDecider(A), f:a:A fp-> Top, x:A. x dom(f)  x dom(f) | [fpf-dom_functionality2] |
Thm* B:(A Type), eq1,eq2:EqDecider(A), f:a:A fp-> B(a), x:A.
Thm* x dom(f) = x dom(f)  | [fpf-dom_functionality] |
Def f g == x:A. x dom(f)  x dom(g) & f(x) = g(x) B(x) | [fpf-sub] |
Def z != f(x) ==> P(a;z) == x dom(f)  P(x;f(x)) | [fpf-val] |
Def f(x)?z == if x dom(f) f(x) else z fi | [fpf-cap] |