Skip to content

Infer from implication with variable condition correctly #40

@Charles-Johnson

Description

@Charles-Johnson

The transitivity of > can be expressed as

let ((_y_ exists_such_that) (_x_ > _y_) and _y_ > _z_) => _x_ > _z_

But if reductions of expressions containing variables are interpreted as meaning that the expression is true no matter what concepts are substituted for the variables, the same transitivity property can be expressed as

let ((_x_ > _y_) and _y_ > _z_) => _x_ > _z_

When evaluating 2 > 0, the expression is generalised to _x_ > _z_ which has sufficient conditions matching the pattern (_x_ > _y_) and _y_ and _z_. Substituting variables leads to 2 > 0 having sufficient conditions matching the pattern (2 > _y_) and _y_ > 0. At this point the ContextSearch::find_example can be used to find that (2 > 1) and 1 > 0 matches which implies 2 > 0.

The interpreter currently would only conclude that 2 > 0 if (2 > _y_) and _y_ > 0 for all _y_ which is clearly not desired.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions