All Downloads are FREE. Search and download functionalities are using the official Maven repository.

it.unibz.inf.ontop.substitution.InjectiveSubstitution Maven / Gradle / Ivy

package it.unibz.inf.ontop.substitution;

import it.unibz.inf.ontop.model.term.ImmutableTerm;
import it.unibz.inf.ontop.model.term.Variable;
import it.unibz.inf.ontop.substitution.impl.SubstitutionImpl;

import java.util.Set;
import java.util.function.Function;

/**
 * An injective substitution
 *    (no value in the substitution map is shared by two keys)
 */
public interface InjectiveSubstitution extends Substitution {

    @Override
    InjectiveSubstitution restrictDomainTo(Set set);

    @Override
    InjectiveSubstitution removeFromDomain(Set set);

    @Override
     InjectiveSubstitution restrictRangeTo(Class type);

    @Override
     InjectiveSubstitution transform(Function function);

    @Override
    Builder> builder();

    interface Builder> extends Substitution.Builder {
        @Override
        InjectiveSubstitution build();
    }
}