src/main/java/org/thegalactic/rule/ImplicationalSystem.java
public int makeLeftMinimal() {
        this.makeUnary();
        ImplicationalSystem save = new ImplicationalSystem(this);
        for (Rule rule1 : save.sigma) {
            for (Rule rule2 : save.sigma) {
                if (!rule1.equals(rule2)
                        && rule2.getPremise().containsAll(rule1.getPremise())
                        && rule1.getConclusion().equals(rule2.getConclusion())) {
                    this.sigma.remove(rule2);
                }
            }
        }
        this.makeCompact();
        return save.sizeRules() - this.sizeRules();
    }
/**
     * Makes this component a left minimal and compact ImplicationalSystem.
     *
     * The unary form of this componant is first computed: if two rules have the
     * same unary conclusion, the rule with the inclusion-maximal premise is
     * deleted.
     *
     * Then, the left-minimal treatment is performed in O(|sigma|^2|S|))
     *
     * @return the difference between the number of rules of this component
     *         before and after this treatment
     */
Makes this component a left minimal and compact ImplicationalSystem.
The unary form of this componant is first computed: if two rules have the
same unary conclusion, the rule with the inclusion-maximal premise is
deleted.

Then, the left-minimal treatment is performed in O(|sigma|^2|S|))

@return the difference between the number of rules of this component
before and after this treatment
Makes this component a left minimal and compact ImplicationalSystem . The unary form of this componant is first computed : if two rules have the same unary conclusion the rule with the inclusion - maximal premise is deleted . Then the left - minimal treatment is performed in O ( |sigma|^2|S| )) @return the difference between the number of rules of this component before and after this treatment
public int makeLeftMinimal() {
        this.makeUnary();
        ImplicationalSystem save = new ImplicationalSystem(this);
        for (Rule rule1 : save.sigma) {
            for (Rule rule2 : save.sigma) {
                if (!rule1.equals(rule2)
                        && rule2.getPremise().containsAll(rule1.getPremise())
                        && rule1.getConclusion().equals(rule2.getConclusion())) {
                    this.sigma.remove(rule2);
                }
            }
        }
        this.makeCompact();
        return save.sizeRules() - this.sizeRules();
    }
public int makeLeftMinimal ( ) { this . makeUnary ( ) ; ImplicationalSystem save = new ImplicationalSystem ( this ) ; for ( Rule rule1 : save . sigma ) { for ( Rule rule2 : save . sigma ) { if ( ! rule1 . equals ( rule2 ) && rule2 . getPremise ( ) . containsAll ( rule1 . getPremise ( ) ) && rule1 . getConclusion ( ) . equals ( rule2 . getConclusion ( ) ) ) { this . sigma . remove ( rule2 ) ; } } } this . makeCompact ( ) ; return save . sizeRules ( ) - this . sizeRules ( ) ; }
Makes this component a left minimal and compact ImplicationalSystem.
Makes this component a left minimal and compact ImplicationalSystem .