Skip to content

Representing propositions in MeTTa (existential quantifier?) #64

@JungeWerther

Description

@JungeWerther

Let's say we have a statement "Bob has blue hair". We could represent it as a unary predicate like

(Predicate Object)
; or
(hasBlueHair Bob)

In case of a binary predicate like "Robin loves James", we can write

(Predicate Subject Object)
; or
(loves Robin James)

Universal quantification is most intuitively represented by an 'if' statement (functions are not appropriate, as discussed)
For example "all swans are black" could be represented as

(if (premise) (conclusion) ())
; or
(if (isSwan $x) (isBlack $x) ())

How would you represent the existential quantifier though? Obviously a predicate like (Exists $x) won't work. My initial thought is that it should be in a way 'dual' to the universal quantifier in the sense that A: all swans are black is equivalent to B: there does not exist a swan which is not black

So "there exists a black swan" could be "not all swans are not black"

(not (if (isSwan $x) (not (isBlack $x)) ()))

This is not equivalent to a direct assertion though, and you have to accept law of excluded middle.

As far as I'm aware you should be able to express quantified statements using dependent types in intuitionistic logic but I'm not sure how you would go about this in MeTTa.

What are your thoughts?

Metadata

Metadata

Labels

help wantedExtra attention is neededquestionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions