Skip to content

[feature] expose an open-ended reasoning function that proves all inferences #15

@bddap

Description

@bddap

The current function signature for infer() is:

pub fn infer<Unbound: Ord + Clone, Bound: Ord + Clone>(
    premises: &[[Bound; 4]],
    rules: &[Rule<Unbound, Bound>],
) -> Vec<[Bound; 4]>;

I can imagine an alternate version being useful:

pub fn infer2<Unbound: Ord + Clone, Bound: Ord + Clone>(
    premises: &[[Bound; 4]],
    rules: &[Rule<Unbound, Bound>],
) -> Vec<RuleApplication<Bound>>;
validate(rules, infer2(premises, rules)).unwrap() == infer(premises, rules)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions