On Wednesday, November 16, 2022 at 11:13:41 AM UTC-5, Mostowski Collapse wrote:
> The above would be possible if f and g were set-like.
> Dan Christensen schrieb am Mittwoch, 16. November 2022 um 01:52:27 UTC+1:
> > On Tuesday, November 15, 2022 at 6:21:54 PM UTC-5, Dan Christensen wrote:
> > > On Tuesday, November 15, 2022 at 11:25:18 AM UTC-5, Dan Christensen wrote:
> > > > On Monday, November 14, 2022 at 11:10:11 PM UTC-5, Dan Christensen wrote:
> > > > > On Monday, November 14, 2022 at 6:57:47 PM UTC-5, Mostowski Collapse wrote:
> > > > > > The problem is you still don't understand FOL. Mathematicians
> > > > > > do heavily use FOL for the following reason:
> > > > > >
> > > >
> > > > > If you want to restrict every quantifier in a proof to the same non-empty domain as implicitly done in FOL, you can do so explicitly in DC Proof. See for example:
https://dcproof.com/SmullyansDrinkerPrinciple.htm
> > > > Might "functions" in FOL also be simulated in DC Proof (i.e. in ordinary math textbook logic) by the following axioms?
> > > >
> > > > 1. EXIST(a):D(a) <------ the implicit "background" domain in FOL
> > > > Axiom
> > > >
> > > > 2. ALL(a):[D(a) => D(f(a))] <------ both "domain" and "codomain" of function f are effectively the FOL background domain D
> > > > Axiom
> > > >
> > > > Comments?
> > > Wouldn't work in DC Proof since f(x) must be an element of a set there. Maybe define FOL functionality in terms of predicates in DC Proof, like F here:
> > >
> > > ALL(a):[D(a) => EXIST(b):[D(b) & [F(a,b) & ALL(c):[D(c) => [F(a,c) => c=b]]]]]
> > >
> > > where D is the non-empty domain implicit in FOL.
> > Just reminder, as you have told us, Jan Burse, ∀a∃b(f(a)=b) is actually a valid theorem FOL, citing this result:
https://www.umsu.de/trees/#~6a~7b(f(a)=b)
> >
> > What is the domain and codomain of the function f here? If you have to ask... It can only be that mysterious, overarching, UNSPECIFIED, but non-empty domain of discourse.
> Thats the problem with you, you don't understand
> FOL. This here is consistent (V the universal predicate):
>
> ALL(z):V(z)
>
I think it is you who does not understand, Jan Burse. The underlying, though unspecified domain, can be ANY non-empty domain, e.g. the the residents of a village.
> If you add such an axiom, and if V is a fresh predicate symbol,
> there is no inconsistency.
>
It doesn't seem to be necessary, even in FOL.
That result is really just postulating the existence of a function in FOL. Here is the DC Proof translation.
ALL(a):[D(a) => EXIST(b):[D(b) & [F(a,b) & ALL(c):[D(c) => [F(a,c) => c=b]]]]]
where D corresponds to the implicit non-empty domain in FOL, and F(a,b) can be informally interpreted as f(a)=b
While you could assume ALL(a):D(a) as you would have it, it is not required here.
> So FOL is able to express very general concepts, via
> predicates. And the function symbols are also very
> general, they map from the universe of discourse to
>
> the universe of discourse. Which you seem to have barred
> from DC Proof. This is because DC Proof abuses FOL function
> symbols.
In most math textbooks, functions are defined as follows:
"Definition 3.3.1 (Functions). Let X, Y be sets, and let P(x, y) be a property pertaining to an object x ∈ X and an object y ∈ Y , such that for every x ∈ X, there is exactly one y ∈ Y for which P(x, y) is true (this is sometimes known as the vertical line test). Then we define the function f : X → Y defined by P on the domain X and range [codomain] Y to be the object which, given any input x ∈ X, assigns an output f(x) ∈ Y, defined to be the unique object f(x) for which P(x, f(x)) is true. Thus, for any x ∈ X and y ∈ Y, y = f(x) ⇐⇒ P(x, y) is true."
--Terence Tao, "Analysis I," p. 49
Similarly in DC Proof:
ALL(dom):ALL(cod):ALL(gra):[Set(dom) & Set(cod) & Set'(gra)
=> [ALL(a1):ALL(b):[(a1,b) in gra => a1 in dom & b in cod]
& ALL(a1):[a1 in dom => EXIST(b):[b in cod & (a1,b) in gra]]
& ALL(a1):ALL(b1):ALL(b2):[a1 in dom & b1 in cod & b2 in cod => [(a1,b1) in gra & (a1,b2) in gra => b1=b2]]
=> EXIST(fun):[Function(fun,dom,cod)
& ALL(a1):ALL(b):[a1 in dom & b in cod => [fun(a1)=b <=> (a1,b) in gra]]]]]
Where:
dom = domain
cod = codomain
gra = graph
fun = function name
> It is neither fish nor fowl, the DC Proof function
>
> symbols are utter nonsense. One can even not prove:
>
> ~f=g => ~dom(f)=dom(g) v EXIST(x):[x e dom(f) & ~f(x)=g(x)]
>
The equality of functions is more commonly defined in math textbooks as follows:
"Definition 3.3.7 (Equality of functions). Two functions f : X → Y, g : X → Y with the same domain and range [codomain] are said to be equal, f = g [with respect to the domain X], if and only if f(x) = g(x) for all x ∈ X."
--Terence Tao, "Analysis I," p. 51
Similarly, in DC Proof:
ALL(dom):ALL(cod):ALL(f1):ALL(f2):[Set(dom) & Set(cod)
& Function(f1,dom,cod) & Function(f2,dom,cod)
=> [f1=f2 <=> ALL(a):[a in dom => f1(a)=f2(a)]]]
I hope this helps.