This question is sequel from How to understand quantifier without predication " ∀(λφ. (φ x m→ φ y))"? which further explains the notation and context.
So – I have anonymous Boolean-valued function
F(y)=λx.Φ(x) (of course, y and x point to the same variable, I just used different syntactic names, to point out, that x is bound variable) and I would like to write the statement, that
F(x) is true for all the values of the argument and it can be written
F(x) is named function, but I would like to write the same expression (that
λx.Φ(x) is true for all values of argument, all values of x) for the anonymous function that uses lambda, so I am with my suggestion:
∀x.λy.Φ(y)? And apparently they both are wrong. What is correct way to express, using quantifier, that expression
λx.Φ(x) is true for all values of x?
Generally my concern (and therefore – my question) is valid. Let’s consider
F(x,y)=λx.λy.Φ(x, y). In that case
∀F is ambigous (there is big difference between
∀x.F(x, y) and
∀y.F(x, y)) and
∀∀F and would be even more ambigous for functions with argument count
∀ should mention argument explicitly. But I guess – noone can refer to some argument explicitly for the function that is written in anonymous form (with
λ) or am I wrong? I am so confused about this notation – how to refere the argument of anonymous function which is referred by
What I am trying to achieve? I just want to build parser for language that is declared in https://www.isa-afp.org/browser_info/current/AFP/GoedelGod/GoedelGod.html. This language contains expressions like
[∀(λΦ. P (λx. m¬ (Φ x)) m→ m¬ (P Φ))].
I am using ANTLR grammar for lambda calculus https://github.com/antlr/grammars-v4/blob/master/lambda/lambda.g4 and I understand that the 1) quantifiers; 2) logical connectives; 3) arithmetic functions are just another lambda functions (it is just syntactic sugar that they are written in the specific non-lambda syntax/prefix form etc.) and as such I express them in the existing lambda.g4 grammar https://github.com/antlr/grammars-v4/blob/master/lambda/lambda.g4. So – my first step is to write the cited expressions with the named functions and then I will just replace them with anonymous functions because lambda.g4 has no options to introduce named functions. But it is so confusing to write anonymous function and the quantifier function for the same argument.
Just side question – maybe there is better ANTLR grammar for lambda calculus with syntactic sugar for quantifiers and connectives?
1 Asked on November 28, 2021 by user2207686
0 Asked on November 28, 2021
2 Asked on November 28, 2021
0 Asked on November 25, 2021
2 Asked on November 25, 2021 by hish
5 Asked on November 23, 2021 by stephen-mwangi
1 Asked on November 23, 2021 by judy-l
3 Asked on November 21, 2021
0 Asked on November 21, 2021 by user3862410
1 Asked on November 21, 2021
2 Asked on November 17, 2021 by ocram
1 Asked on November 17, 2021 by user123521
1 Asked on November 17, 2021 by dshri
0 Asked on November 13, 2021 by northerner
1 Asked on November 11, 2021 by pragya
1 Asked on November 11, 2021 by yuezato
1 Asked on November 8, 2021 by john-flemin
Get help from others!