\DOC P_FUN_EQ_CONV \TYPE {P_FUN_EQ_CONV : (term -> conv)} \KEYWORDS conversion, extensionality. \LIBRARY pair \SYNOPSIS Performs extensionality conversion for functions (function equality). \DESCRIBE The conversion {P_FUN_EQ_CONV} embodies the fact that two functions are equal precisely when they give the same results for all values to which they can be applied. For any paired variable structure {"p"} and equation {"f = g"}, where {p} is of type {ty1} and {f} and {g} are functions of type {ty1>ty2}, a call to {P_FUN_EQ_CONV "p" "f = g"} returns the theorem: { |- (f = g) = (!p. f p = g p) } \FAILURE {P_FUN_EQ_CONV p tm} fails if {p} is not a paired structure of variables or if {tm} is not an equation {f = g} where {f} and {g} are functions. Furthermore, if {f} and {g} are functions of type {ty1->ty2}, then the pair {x} must have type {ty1}; otherwise the conversion fails. Finally, failure also occurs if any of the variables in {p} is free in either {f} or {g}. \SEEALSO Conv.FUN_EQ_CONV, PairRules.PEXT. \ENDDOC