WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Verification Update #9

@James-Oswald

Description

@James-Oswald

Currently verification for rules with multiple parents is done in a hacky way where for each node we do a search over all parent's formula to determine if it is the correct form. For an example see the following code where we need to compute the left and right parents individually.

https://github.com/James-Oswald/lazyslate/blob/master/src/core/Proof/verify.ts#L242C15-L261

This type code is the source of many bugs (including #8). A better way to write this would be to generalize by writing a verification method for each rule that assumes the Premise proof nodes are passed in in a given order, just like how the real inference rules work. With this we can then try to verify all permutations of the premises, if just one of these verifies than the node verifies, otherwise if none of the permutations verify the node does not verify.

Additionally, this method probably does not sacrifice efficiency over the current version. Or Elim, the largest rule, only has 6 permutations of parents, and the code already basically checks these inside of the current verification function.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions