aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/SMT-Solver/hu.bme.mit.inf.dslreasoner.smt.reasoner/src/hu/bme/mit/inf/dslreasoner/smt/reasoner/Logic2SMT_TypeMapperInterpretation.xtend
blob: 44708f44b6add55a0814160da3752c473cd9a275 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package hu.bme.mit.inf.dslreasoner.smt.reasoner

import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement
import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type
import hu.bme.mit.inf.dslreasoner.smtLanguage.SMTSymbolicDeclaration
import java.util.List
import java.util.Map
import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.*

class Logic2SMT_TypeMapperInterpretation {
	
	val Map<Type, ? extends List<DefinedElement>> type2Elements
	val Map<DefinedElement, ValueType> logic2smt
	val Map<SMTSymbolicDeclaration, DefinedElement> smt2logic
	
	public new(
		Map<Type, ? extends List<DefinedElement>> type2Elements,
		Map<DefinedElement, ValueType> logic2smt,
		Map<SMTSymbolicDeclaration, DefinedElement> smt2logic) {
		this.type2Elements = type2Elements
		this.logic2smt = logic2smt
		this.smt2logic = smt2logic
	}
	
	public def getElements(Type type) {
		return type2Elements.get(type)
	}
	
	public def ValueType logicElement2Smt(DefinedElement element) {
		return element.lookup(this.logic2smt)
	}
	
	public def smtElement2Logic(SMTSymbolicDeclaration element) {
		return element.lookup(this.smt2logic)
	}
}