Hacker News new | ask | show | jobs
by endtime 5754 days ago
Nitpicking, but is this any sort of conventional syntax for defining a predicate? I've never seen it before, and I don't find it particularly intuitive...

> ∃ {C(x) : x is a context}

1 comments

It looks straight out of my college course on logic. The backwards E is the existential operator. C is a verb. The sentence means "a context exists".
That's clearly the intended meaning, but what it really says is that there exists a set whose elements are of the form C(x) where "x is a context" and C is left undefined. This, of course, is meaningless. Understanding is left as an exercise for the reader?
The notation (C(x): x is a context) actually means "C(x) is shorthand for the following sentence: 'x is a context'". C is not undefined, it is the template "___ is a context".

I guess the way the brackets are used may not be standard and could be confusing.

I know what the existential operator is, and C is a predicate, not a verb. But I've always seen predicates defined using lambda calculus (or just English)...this notation makes no sense to me.