Klassengerüst

This commit is contained in:
Arne Keller 2021-01-27 09:15:29 +01:00
parent c8564e14bd
commit 8700a83390
17 changed files with 71 additions and 0 deletions

View File

@ -1,5 +1,12 @@
package edu.kit.typicalc.model;
import edu.kit.typicalc.model.term.LambdaTerm;
import edu.kit.typicalc.model.term.VarTerm;
import edu.kit.typicalc.model.type.Type;
import edu.kit.typicalc.model.type.TypeAbstraction;
import java.util.Map;
/**
* Models the conclusion of an inference rule and consists of a list of type assumptions, a lambda term and a type.
* This class is used in inference steps to represent the conclusion of that specific application of the inference rule.

View File

@ -1,5 +1,7 @@
package edu.kit.typicalc.model;
import edu.kit.typicalc.model.type.Type;
/**
* Constrains two types to be equal.
*/

View File

@ -1,5 +1,8 @@
package edu.kit.typicalc.model;
import edu.kit.typicalc.model.type.Type;
import edu.kit.typicalc.model.type.TypeVariable;
/**
* A substitution specifies that some type should be replaced by a different type.
*/

View File

@ -1,6 +1,13 @@
package edu.kit.typicalc.model;
import edu.kit.typicalc.model.step.InferenceStep;
import edu.kit.typicalc.model.term.LambdaTerm;
import edu.kit.typicalc.model.term.TermVisitor;
import edu.kit.typicalc.model.term.VarTerm;
import edu.kit.typicalc.model.type.TypeAbstraction;
import java.util.List;
import java.util.Map;
/**
* Models the proof tree formed when the type of a lambda term is inferred.

View File

@ -1,5 +1,8 @@
package edu.kit.typicalc.model;
import edu.kit.typicalc.model.type.Type;
import edu.kit.typicalc.model.type.TypeVariable;
import java.util.List;
/**

View File

@ -1,6 +1,13 @@
package edu.kit.typicalc.model;
import edu.kit.typicalc.model.step.InferenceStep;
import edu.kit.typicalc.model.term.LambdaTerm;
import edu.kit.typicalc.model.term.VarTerm;
import edu.kit.typicalc.model.type.Type;
import edu.kit.typicalc.model.type.TypeAbstraction;
import java.util.List;
import java.util.Map;
/**
* The type inferer is responsible for the whole type inference of a given lambda term, taking

View File

@ -1,5 +1,8 @@
package edu.kit.typicalc.model;
import edu.kit.typicalc.model.step.InferenceStep;
import edu.kit.typicalc.model.type.Type;
import java.util.List;
/**

View File

@ -1,6 +1,11 @@
package edu.kit.typicalc.model;
import edu.kit.typicalc.model.term.LambdaTerm;
import edu.kit.typicalc.model.term.VarTerm;
import edu.kit.typicalc.model.type.TypeAbstraction;
import java.util.List;
import java.util.Map;
/**
* Instances of this subclass of TypeInferer are used to execute the sub-inference starting in let steps.

View File

@ -1,5 +1,7 @@
package edu.kit.typicalc.model;
import edu.kit.typicalc.model.type.TypeVariable;
/**
* Provides unique type variables on demand.
*/

View File

@ -0,0 +1,4 @@
package edu.kit.typicalc.model;
public class UnificationStep {
}

View File

@ -0,0 +1,4 @@
package edu.kit.typicalc.model.step;
public class InferenceStep {
}

View File

@ -0,0 +1,4 @@
package edu.kit.typicalc.model.term;
public class LambdaTerm {
}

View File

@ -0,0 +1,4 @@
package edu.kit.typicalc.model.term;
public interface TermVisitor {
}

View File

@ -0,0 +1,4 @@
package edu.kit.typicalc.model.term;
public class VarTerm {
}

View File

@ -0,0 +1,4 @@
package edu.kit.typicalc.model.type;
public abstract class Type {
}

View File

@ -0,0 +1,4 @@
package edu.kit.typicalc.model.type;
public class TypeAbstraction {
}

View File

@ -0,0 +1,4 @@
package edu.kit.typicalc.model.type;
public class TypeVariable {
}