/*
 * generated by Xtext 2.19.0
 */
grammar InternalSocrates;

options {
	superClass=AbstractInternalContentAssistParser;
	backtrack=true;
}

@lexer::header {
package lu.uni.ide.contentassist.antlr.internal;

// Hack: Use our own Lexer superclass by means of import. 
// Currently there is no other way to specify the superclass for the lexer.
import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
}

@parser::header {
package lu.uni.ide.contentassist.antlr.internal;

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA;
import lu.uni.services.SocratesGrammarAccess;

}
@parser::members {
	private SocratesGrammarAccess grammarAccess;

	public void setGrammarAccess(SocratesGrammarAccess grammarAccess) {
		this.grammarAccess = grammarAccess;
	}

	@Override
	protected Grammar getGrammar() {
		return grammarAccess.getGrammar();
	}

	@Override
	protected String getValueForTokenName(String tokenName) {
		return tokenName;
	}
}

// Entry rule entryRuleSocrates
entryRuleSocrates
:
{ before(grammarAccess.getSocratesRule()); }
	 ruleSocrates
{ after(grammarAccess.getSocratesRule()); } 
	 EOF 
;

// Rule Socrates
ruleSocrates 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getSocratesAccess().getOraclesAssignment()); }
		(rule__Socrates__OraclesAssignment)*
		{ after(grammarAccess.getSocratesAccess().getOraclesAssignment()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleOracle
entryRuleOracle
:
{ before(grammarAccess.getOracleRule()); }
	 ruleOracle
{ after(grammarAccess.getOracleRule()); } 
	 EOF 
;

// Rule Oracle
ruleOracle 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getOracleAccess().getGroup()); }
		(rule__Oracle__Group__0)
		{ after(grammarAccess.getOracleAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleRequirement
entryRuleRequirement
:
{ before(grammarAccess.getRequirementRule()); }
	 ruleRequirement
{ after(grammarAccess.getRequirementRule()); } 
	 EOF 
;

// Rule Requirement
ruleRequirement 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getRequirementAccess().getGroup()); }
		(rule__Requirement__Group__0)
		{ after(grammarAccess.getRequirementAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleReqId
entryRuleReqId
:
{ before(grammarAccess.getReqIdRule()); }
	 ruleReqId
{ after(grammarAccess.getReqIdRule()); } 
	 EOF 
;

// Rule ReqId
ruleReqId 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getReqIdAccess().getGroup()); }
		(rule__ReqId__Group__0)
		{ after(grammarAccess.getReqIdAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleSignalsdefinition
entryRuleSignalsdefinition
:
{ before(grammarAccess.getSignalsdefinitionRule()); }
	 ruleSignalsdefinition
{ after(grammarAccess.getSignalsdefinitionRule()); } 
	 EOF 
;

// Rule Signalsdefinition
ruleSignalsdefinition 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getSignalsdefinitionAccess().getGroup()); }
		(rule__Signalsdefinition__Group__0)
		{ after(grammarAccess.getSignalsdefinitionAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleConstantsDefinition
entryRuleConstantsDefinition
:
{ before(grammarAccess.getConstantsDefinitionRule()); }
	 ruleConstantsDefinition
{ after(grammarAccess.getConstantsDefinitionRule()); } 
	 EOF 
;

// Rule ConstantsDefinition
ruleConstantsDefinition 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getConstantsDefinitionAccess().getGroup()); }
		(rule__ConstantsDefinition__Group__0)
		{ after(grammarAccess.getConstantsDefinitionAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleConstantDefinition
entryRuleConstantDefinition
:
{ before(grammarAccess.getConstantDefinitionRule()); }
	 ruleConstantDefinition
{ after(grammarAccess.getConstantDefinitionRule()); } 
	 EOF 
;

// Rule ConstantDefinition
ruleConstantDefinition 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getConstantDefinitionAccess().getGroup()); }
		(rule__ConstantDefinition__Group__0)
		{ after(grammarAccess.getConstantDefinitionAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleSignalID
entryRuleSignalID
:
{ before(grammarAccess.getSignalIDRule()); }
	 ruleSignalID
{ after(grammarAccess.getSignalIDRule()); } 
	 EOF 
;

// Rule SignalID
ruleSignalID 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getSignalIDAccess().getNameAssignment()); }
		(rule__SignalID__NameAssignment)
		{ after(grammarAccess.getSignalIDAccess().getNameAssignment()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleConstantId
entryRuleConstantId
:
{ before(grammarAccess.getConstantIdRule()); }
	 ruleConstantId
{ after(grammarAccess.getConstantIdRule()); } 
	 EOF 
;

// Rule ConstantId
ruleConstantId 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getConstantIdAccess().getNameAssignment()); }
		(rule__ConstantId__NameAssignment)
		{ after(grammarAccess.getConstantIdAccess().getNameAssignment()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleForAllformula
entryRuleForAllformula
:
{ before(grammarAccess.getForAllformulaRule()); }
	 ruleForAllformula
{ after(grammarAccess.getForAllformulaRule()); } 
	 EOF 
;

// Rule ForAllformula
ruleForAllformula 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getForAllformulaAccess().getGroup()); }
		(rule__ForAllformula__Group__0)
		{ after(grammarAccess.getForAllformulaAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleExistsformula
entryRuleExistsformula
:
{ before(grammarAccess.getExistsformulaRule()); }
	 ruleExistsformula
{ after(grammarAccess.getExistsformulaRule()); } 
	 EOF 
;

// Rule Existsformula
ruleExistsformula 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getExistsformulaAccess().getGroup()); }
		(rule__Existsformula__Group__0)
		{ after(grammarAccess.getExistsformulaAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleTvariable
entryRuleTvariable
:
{ before(grammarAccess.getTvariableRule()); }
	 ruleTvariable
{ after(grammarAccess.getTvariableRule()); } 
	 EOF 
;

// Rule Tvariable
ruleTvariable 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getTvariableAccess().getNameAssignment()); }
		(rule__Tvariable__NameAssignment)
		{ after(grammarAccess.getTvariableAccess().getNameAssignment()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRulenegationformula
entryRulenegationformula
:
{ before(grammarAccess.getNegationformulaRule()); }
	 rulenegationformula
{ after(grammarAccess.getNegationformulaRule()); } 
	 EOF 
;

// Rule negationformula
rulenegationformula 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getNegationformulaAccess().getGroup()); }
		(rule__Negationformula__Group__0)
		{ after(grammarAccess.getNegationformulaAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleformula
entryRuleformula
:
{ before(grammarAccess.getFormulaRule()); }
	 ruleformula
{ after(grammarAccess.getFormulaRule()); } 
	 EOF 
;

// Rule formula
ruleformula 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getFormulaAccess().getAlternatives()); }
		(rule__Formula__Alternatives)
		{ after(grammarAccess.getFormulaAccess().getAlternatives()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleformulab
entryRuleformulab
:
{ before(grammarAccess.getFormulabRule()); }
	 ruleformulab
{ after(grammarAccess.getFormulabRule()); } 
	 EOF 
;

// Rule formulab
ruleformulab 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getFormulabAccess().getGroup()); }
		(rule__Formulab__Group__0)
		{ after(grammarAccess.getFormulabAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleformulabprime
entryRuleformulabprime
:
{ before(grammarAccess.getFormulabprimeRule()); }
	 ruleformulabprime
{ after(grammarAccess.getFormulabprimeRule()); } 
	 EOF 
;

// Rule formulabprime
ruleformulabprime 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getFormulabprimeAccess().getGroup()); }
		(rule__Formulabprime__Group__0)?
		{ after(grammarAccess.getFormulabprimeAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleterm
entryRuleterm
:
{ before(grammarAccess.getTermRule()); }
	 ruleterm
{ after(grammarAccess.getTermRule()); } 
	 EOF 
;

// Rule term
ruleterm 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getTermAccess().getGroup()); }
		(rule__Term__Group__0)
		{ after(grammarAccess.getTermAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuletermprime
entryRuletermprime
:
{ before(grammarAccess.getTermprimeRule()); }
	 ruletermprime
{ after(grammarAccess.getTermprimeRule()); } 
	 EOF 
;

// Rule termprime
ruletermprime 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getTermprimeAccess().getGroup()); }
		(rule__Termprime__Group__0)?
		{ after(grammarAccess.getTermprimeAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleexpression
entryRuleexpression
:
{ before(grammarAccess.getExpressionRule()); }
	 ruleexpression
{ after(grammarAccess.getExpressionRule()); } 
	 EOF 
;

// Rule expression
ruleexpression 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getExpressionAccess().getExpbAssignment()); }
		(rule__Expression__ExpbAssignment)
		{ after(grammarAccess.getExpressionAccess().getExpbAssignment()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleexpressionb
entryRuleexpressionb
:
{ before(grammarAccess.getExpressionbRule()); }
	 ruleexpressionb
{ after(grammarAccess.getExpressionbRule()); } 
	 EOF 
;

// Rule expressionb
ruleexpressionb 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getExpressionbAccess().getAlternatives()); }
		(rule__Expressionb__Alternatives)
		{ after(grammarAccess.getExpressionbAccess().getAlternatives()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleexpressionprime
entryRuleexpressionprime
:
{ before(grammarAccess.getExpressionprimeRule()); }
	 ruleexpressionprime
{ after(grammarAccess.getExpressionprimeRule()); } 
	 EOF 
;

// Rule expressionprime
ruleexpressionprime 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getExpressionprimeAccess().getGroup()); }
		(rule__Expressionprime__Group__0)?
		{ after(grammarAccess.getExpressionprimeAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleexpressionterm
entryRuleexpressionterm
:
{ before(grammarAccess.getExpressiontermRule()); }
	 ruleexpressionterm
{ after(grammarAccess.getExpressiontermRule()); } 
	 EOF 
;

// Rule expressionterm
ruleexpressionterm 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getExpressiontermAccess().getGroup()); }
		(rule__Expressionterm__Group__0)
		{ after(grammarAccess.getExpressiontermAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleexpressiontermprime
entryRuleexpressiontermprime
:
{ before(grammarAccess.getExpressiontermprimeRule()); }
	 ruleexpressiontermprime
{ after(grammarAccess.getExpressiontermprimeRule()); } 
	 EOF 
;

// Rule expressiontermprime
ruleexpressiontermprime 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getExpressiontermprimeAccess().getGroup()); }
		(rule__Expressiontermprime__Group__0)?
		{ after(grammarAccess.getExpressiontermprimeAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleExpressionAtom
entryRuleExpressionAtom
:
{ before(grammarAccess.getExpressionAtomRule()); }
	 ruleExpressionAtom
{ after(grammarAccess.getExpressionAtomRule()); } 
	 EOF 
;

// Rule ExpressionAtom
ruleExpressionAtom 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getExpressionAtomAccess().getAlternatives()); }
		(rule__ExpressionAtom__Alternatives)
		{ after(grammarAccess.getExpressionAtomAccess().getAlternatives()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleBasicexpression
entryRuleBasicexpression
:
{ before(grammarAccess.getBasicexpressionRule()); }
	 ruleBasicexpression
{ after(grammarAccess.getBasicexpressionRule()); } 
	 EOF 
;

// Rule Basicexpression
ruleBasicexpression 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getBasicexpressionAccess().getAlternatives()); }
		(rule__Basicexpression__Alternatives)
		{ after(grammarAccess.getBasicexpressionAccess().getAlternatives()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRulebasicformulae
entryRulebasicformulae
:
{ before(grammarAccess.getBasicformulaeRule()); }
	 rulebasicformulae
{ after(grammarAccess.getBasicformulaeRule()); } 
	 EOF 
;

// Rule basicformulae
rulebasicformulae 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getBasicformulaeAccess().getAlternatives()); }
		(rule__Basicformulae__Alternatives)
		{ after(grammarAccess.getBasicformulaeAccess().getAlternatives()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleboundterm
entryRuleboundterm
:
{ before(grammarAccess.getBoundtermRule()); }
	 ruleboundterm
{ after(grammarAccess.getBoundtermRule()); } 
	 EOF 
;

// Rule boundterm
ruleboundterm 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getBoundtermAccess().getGroup()); }
		(rule__Boundterm__Group__0)
		{ after(grammarAccess.getBoundtermAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuletimedterm
entryRuletimedterm
:
{ before(grammarAccess.getTimedtermRule()); }
	 ruletimedterm
{ after(grammarAccess.getTimedtermRule()); } 
	 EOF 
;

// Rule timedterm
ruletimedterm 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getTimedtermAccess().getAlternatives()); }
		(rule__Timedterm__Alternatives)
		{ after(grammarAccess.getTimedtermAccess().getAlternatives()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleatom
entryRuleatom
:
{ before(grammarAccess.getAtomRule()); }
	 ruleatom
{ after(grammarAccess.getAtomRule()); } 
	 EOF 
;

// Rule atom
ruleatom 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getAtomAccess().getAlternatives()); }
		(rule__Atom__Alternatives)
		{ after(grammarAccess.getAtomAccess().getAlternatives()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRulevalue
entryRulevalue
:
{ before(grammarAccess.getValueRule()); }
	 rulevalue
{ after(grammarAccess.getValueRule()); } 
	 EOF 
;

// Rule value
rulevalue 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getValueAccess().getAlternatives()); }
		(rule__Value__Alternatives)
		{ after(grammarAccess.getValueAccess().getAlternatives()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleSignal
entryRuleSignal
:
{ before(grammarAccess.getSignalRule()); }
	 ruleSignal
{ after(grammarAccess.getSignalRule()); } 
	 EOF 
;

// Rule Signal
ruleSignal 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getSignalAccess().getAlternatives()); }
		(rule__Signal__Alternatives)
		{ after(grammarAccess.getSignalAccess().getAlternatives()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleAbsEXP
entryRuleAbsEXP
:
{ before(grammarAccess.getAbsEXPRule()); }
	 ruleAbsEXP
{ after(grammarAccess.getAbsEXPRule()); } 
	 EOF 
;

// Rule AbsEXP
ruleAbsEXP 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getAbsEXPAccess().getGroup()); }
		(rule__AbsEXP__Group__0)
		{ after(grammarAccess.getAbsEXPAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleNormexp
entryRuleNormexp
:
{ before(grammarAccess.getNormexpRule()); }
	 ruleNormexp
{ after(grammarAccess.getNormexpRule()); } 
	 EOF 
;

// Rule Normexp
ruleNormexp 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getNormexpAccess().getGroup()); }
		(rule__Normexp__Group__0)
		{ after(grammarAccess.getNormexpAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleSin
entryRuleSin
:
{ before(grammarAccess.getSinRule()); }
	 ruleSin
{ after(grammarAccess.getSinRule()); } 
	 EOF 
;

// Rule Sin
ruleSin 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getSinAccess().getGroup()); }
		(rule__Sin__Group__0)
		{ after(grammarAccess.getSinAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleCos
entryRuleCos
:
{ before(grammarAccess.getCosRule()); }
	 ruleCos
{ after(grammarAccess.getCosRule()); } 
	 EOF 
;

// Rule Cos
ruleCos 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getCosAccess().getGroup()); }
		(rule__Cos__Group__0)
		{ after(grammarAccess.getCosAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleSqrt
entryRuleSqrt
:
{ before(grammarAccess.getSqrtRule()); }
	 ruleSqrt
{ after(grammarAccess.getSqrtRule()); } 
	 EOF 
;

// Rule Sqrt
ruleSqrt 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getSqrtAccess().getGroup()); }
		(rule__Sqrt__Group__0)
		{ after(grammarAccess.getSqrtAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleFLOAT
entryRuleFLOAT
:
{ before(grammarAccess.getFLOATRule()); }
	 ruleFLOAT
{ after(grammarAccess.getFLOATRule()); } 
	 EOF 
;

// Rule FLOAT
ruleFLOAT 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getFLOATAccess().getGroup()); }
		(rule__FLOAT__Group__0)
		{ after(grammarAccess.getFLOATAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRulePATH
entryRulePATH
:
{ before(grammarAccess.getPATHRule()); }
	 rulePATH
{ after(grammarAccess.getPATHRule()); } 
	 EOF 
;

// Rule PATH
rulePATH 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getPATHAccess().getGroup()); }
		(rule__PATH__Group__0)
		{ after(grammarAccess.getPATHAccess().getGroup()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRulenumber
entryRulenumber
:
{ before(grammarAccess.getNumberRule()); }
	 rulenumber
{ after(grammarAccess.getNumberRule()); } 
	 EOF 
;

// Rule number
rulenumber 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getNumberAccess().getAlternatives()); }
		(rule__Number__Alternatives)
		{ after(grammarAccess.getNumberAccess().getAlternatives()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleRELOP
entryRuleRELOP
:
{ before(grammarAccess.getRELOPRule()); }
	 ruleRELOP
{ after(grammarAccess.getRELOPRule()); } 
	 EOF 
;

// Rule RELOP
ruleRELOP 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getRELOPAccess().getAlternatives()); }
		(rule__RELOP__Alternatives)
		{ after(grammarAccess.getRELOPAccess().getAlternatives()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleCOMMA
entryRuleCOMMA
:
{ before(grammarAccess.getCOMMARule()); }
	 ruleCOMMA
{ after(grammarAccess.getCOMMARule()); } 
	 EOF 
;

// Rule COMMA
ruleCOMMA 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getCOMMAAccess().getCommaKeyword()); }
		','
		{ after(grammarAccess.getCOMMAAccess().getCommaKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleLE
entryRuleLE
:
{ before(grammarAccess.getLERule()); }
	 ruleLE
{ after(grammarAccess.getLERule()); } 
	 EOF 
;

// Rule LE
ruleLE 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getLEAccess().getLessThanSignKeyword()); }
		'<'
		{ after(grammarAccess.getLEAccess().getLessThanSignKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleLEQ
entryRuleLEQ
:
{ before(grammarAccess.getLEQRule()); }
	 ruleLEQ
{ after(grammarAccess.getLEQRule()); } 
	 EOF 
;

// Rule LEQ
ruleLEQ 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getLEQAccess().getLessThanSignEqualsSignKeyword()); }
		'<='
		{ after(grammarAccess.getLEQAccess().getLessThanSignEqualsSignKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleGE
entryRuleGE
:
{ before(grammarAccess.getGERule()); }
	 ruleGE
{ after(grammarAccess.getGERule()); } 
	 EOF 
;

// Rule GE
ruleGE 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getGEAccess().getGreaterThanSignKeyword()); }
		'>'
		{ after(grammarAccess.getGEAccess().getGreaterThanSignKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleGEQ
entryRuleGEQ
:
{ before(grammarAccess.getGEQRule()); }
	 ruleGEQ
{ after(grammarAccess.getGEQRule()); } 
	 EOF 
;

// Rule GEQ
ruleGEQ 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getGEQAccess().getGreaterThanSignEqualsSignKeyword()); }
		'>='
		{ after(grammarAccess.getGEQAccess().getGreaterThanSignEqualsSignKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleEQ
entryRuleEQ
:
{ before(grammarAccess.getEQRule()); }
	 ruleEQ
{ after(grammarAccess.getEQRule()); } 
	 EOF 
;

// Rule EQ
ruleEQ 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getEQAccess().getEqualsSignKeyword()); }
		'='
		{ after(grammarAccess.getEQAccess().getEqualsSignKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleNEQ
entryRuleNEQ
:
{ before(grammarAccess.getNEQRule()); }
	 ruleNEQ
{ after(grammarAccess.getNEQRule()); } 
	 EOF 
;

// Rule NEQ
ruleNEQ 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getNEQAccess().getExclamationMarkEqualsSignKeyword()); }
		'!='
		{ after(grammarAccess.getNEQAccess().getExclamationMarkEqualsSignKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleLPAREN
entryRuleLPAREN
:
{ before(grammarAccess.getLPARENRule()); }
	 ruleLPAREN
{ after(grammarAccess.getLPARENRule()); } 
	 EOF 
;

// Rule LPAREN
ruleLPAREN 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getLPARENAccess().getLeftParenthesisKeyword()); }
		'('
		{ after(grammarAccess.getLPARENAccess().getLeftParenthesisKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleRPAREN
entryRuleRPAREN
:
{ before(grammarAccess.getRPARENRule()); }
	 ruleRPAREN
{ after(grammarAccess.getRPARENRule()); } 
	 EOF 
;

// Rule RPAREN
ruleRPAREN 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getRPARENAccess().getRightParenthesisKeyword()); }
		')'
		{ after(grammarAccess.getRPARENAccess().getRightParenthesisKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleLSQUARE
entryRuleLSQUARE
:
{ before(grammarAccess.getLSQUARERule()); }
	 ruleLSQUARE
{ after(grammarAccess.getLSQUARERule()); } 
	 EOF 
;

// Rule LSQUARE
ruleLSQUARE 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getLSQUAREAccess().getLeftSquareBracketKeyword()); }
		'['
		{ after(grammarAccess.getLSQUAREAccess().getLeftSquareBracketKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleRSQUARE
entryRuleRSQUARE
:
{ before(grammarAccess.getRSQUARERule()); }
	 ruleRSQUARE
{ after(grammarAccess.getRSQUARERule()); } 
	 EOF 
;

// Rule RSQUARE
ruleRSQUARE 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getRSQUAREAccess().getRightSquareBracketKeyword()); }
		']'
		{ after(grammarAccess.getRSQUAREAccess().getRightSquareBracketKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleNOT
entryRuleNOT
:
{ before(grammarAccess.getNOTRule()); }
	 ruleNOT
{ after(grammarAccess.getNOTRule()); } 
	 EOF 
;

// Rule NOT
ruleNOT 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getNOTAccess().getNotKeyword()); }
		'not'
		{ after(grammarAccess.getNOTAccess().getNotKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleFORALL
entryRuleFORALL
:
{ before(grammarAccess.getFORALLRule()); }
	 ruleFORALL
{ after(grammarAccess.getFORALLRule()); } 
	 EOF 
;

// Rule FORALL
ruleFORALL 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getFORALLAccess().getForallKeyword()); }
		'forall'
		{ after(grammarAccess.getFORALLAccess().getForallKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleEXISTS
entryRuleEXISTS
:
{ before(grammarAccess.getEXISTSRule()); }
	 ruleEXISTS
{ after(grammarAccess.getEXISTSRule()); } 
	 EOF 
;

// Rule EXISTS
ruleEXISTS 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getEXISTSAccess().getExistsKeyword()); }
		'exists'
		{ after(grammarAccess.getEXISTSAccess().getExistsKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleCONJ
entryRuleCONJ
:
{ before(grammarAccess.getCONJRule()); }
	 ruleCONJ
{ after(grammarAccess.getCONJRule()); } 
	 EOF 
;

// Rule CONJ
ruleCONJ 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getCONJAccess().getAndKeyword()); }
		'and'
		{ after(grammarAccess.getCONJAccess().getAndKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleDISJ
entryRuleDISJ
:
{ before(grammarAccess.getDISJRule()); }
	 ruleDISJ
{ after(grammarAccess.getDISJRule()); } 
	 EOF 
;

// Rule DISJ
ruleDISJ 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getDISJAccess().getOrKeyword()); }
		'or'
		{ after(grammarAccess.getDISJAccess().getOrKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleIMPL
entryRuleIMPL
:
{ before(grammarAccess.getIMPLRule()); }
	 ruleIMPL
{ after(grammarAccess.getIMPLRule()); } 
	 EOF 
;

// Rule IMPL
ruleIMPL 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getIMPLAccess().getImpliesKeyword()); }
		'implies'
		{ after(grammarAccess.getIMPLAccess().getImpliesKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleBICOND
entryRuleBICOND
:
{ before(grammarAccess.getBICONDRule()); }
	 ruleBICOND
{ after(grammarAccess.getBICONDRule()); } 
	 EOF 
;

// Rule BICOND
ruleBICOND 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getBICONDAccess().getIffKeyword()); }
		'iff'
		{ after(grammarAccess.getBICONDAccess().getIffKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleINF
entryRuleINF
:
{ before(grammarAccess.getINFRule()); }
	 ruleINF
{ after(grammarAccess.getINFRule()); } 
	 EOF 
;

// Rule INF
ruleINF 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getINFAccess().getInfKeyword()); }
		'inf'
		{ after(grammarAccess.getINFAccess().getInfKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleIN
entryRuleIN
:
{ before(grammarAccess.getINRule()); }
	 ruleIN
{ after(grammarAccess.getINRule()); } 
	 EOF 
;

// Rule IN
ruleIN 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getINAccess().getInKeyword()); }
		'in'
		{ after(grammarAccess.getINAccess().getInKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRulePLUS
entryRulePLUS
:
{ before(grammarAccess.getPLUSRule()); }
	 rulePLUS
{ after(grammarAccess.getPLUSRule()); } 
	 EOF 
;

// Rule PLUS
rulePLUS 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getPLUSAccess().getPlusSignKeyword()); }
		'+'
		{ after(grammarAccess.getPLUSAccess().getPlusSignKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleMINUS
entryRuleMINUS
:
{ before(grammarAccess.getMINUSRule()); }
	 ruleMINUS
{ after(grammarAccess.getMINUSRule()); } 
	 EOF 
;

// Rule MINUS
ruleMINUS 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getMINUSAccess().getHyphenMinusKeyword()); }
		'-'
		{ after(grammarAccess.getMINUSAccess().getHyphenMinusKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleCOLON
entryRuleCOLON
:
{ before(grammarAccess.getCOLONRule()); }
	 ruleCOLON
{ after(grammarAccess.getCOLONRule()); } 
	 EOF 
;

// Rule COLON
ruleCOLON 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getCOLONAccess().getColonKeyword()); }
		':'
		{ after(grammarAccess.getCOLONAccess().getColonKeyword()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

// Entry rule entryRuleSIGN
entryRuleSIGN
:
{ before(grammarAccess.getSIGNRule()); }
	 ruleSIGN
{ after(grammarAccess.getSIGNRule()); } 
	 EOF 
;

// Rule SIGN
ruleSIGN 
	@init {
		int stackSize = keepStackSize();
	}
	:
	(
		{ before(grammarAccess.getSIGNAccess().getAlternatives()); }
		(rule__SIGN__Alternatives)
		{ after(grammarAccess.getSIGNAccess().getAlternatives()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Formula__Alternatives
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getFormulaAccess().getFAssignment_0()); }
		(rule__Formula__FAssignment_0)
		{ after(grammarAccess.getFormulaAccess().getFAssignment_0()); }
	)
	|
	(
		{ before(grammarAccess.getFormulaAccess().getFAssignment_1()); }
		(rule__Formula__FAssignment_1)
		{ after(grammarAccess.getFormulaAccess().getFAssignment_1()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulabprime__OpAlternatives_0_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getFormulabprimeAccess().getOpOrKeyword_0_0_0()); }
		'or'
		{ after(grammarAccess.getFormulabprimeAccess().getOpOrKeyword_0_0_0()); }
	)
	|
	(
		{ before(grammarAccess.getFormulabprimeAccess().getOpImpliesKeyword_0_0_1()); }
		'implies'
		{ after(grammarAccess.getFormulabprimeAccess().getOpImpliesKeyword_0_0_1()); }
	)
	|
	(
		{ before(grammarAccess.getFormulabprimeAccess().getOpIffKeyword_0_0_2()); }
		'iff'
		{ after(grammarAccess.getFormulabprimeAccess().getOpIffKeyword_0_0_2()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__Alternatives
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionbAccess().getGroup_0()); }
		(rule__Expressionb__Group_0__0)
		{ after(grammarAccess.getExpressionbAccess().getGroup_0()); }
	)
	|
	(
		{ before(grammarAccess.getExpressionbAccess().getGroup_1()); }
		(rule__Expressionb__Group_1__0)
		{ after(grammarAccess.getExpressionbAccess().getGroup_1()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionprime__OpAlternatives_0_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionprimeAccess().getOpPlusSignKeyword_0_0_0()); }
		'+'
		{ after(grammarAccess.getExpressionprimeAccess().getOpPlusSignKeyword_0_0_0()); }
	)
	|
	(
		{ before(grammarAccess.getExpressionprimeAccess().getOpHyphenMinusKeyword_0_0_1()); }
		'-'
		{ after(grammarAccess.getExpressionprimeAccess().getOpHyphenMinusKeyword_0_0_1()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionterm__TermAlternatives_0_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressiontermAccess().getTermExpressionAtomParserRuleCall_0_0_0()); }
		ruleExpressionAtom
		{ after(grammarAccess.getExpressiontermAccess().getTermExpressionAtomParserRuleCall_0_0_0()); }
	)
	|
	(
		{ before(grammarAccess.getExpressiontermAccess().getTermBasicexpressionParserRuleCall_0_0_1()); }
		ruleBasicexpression
		{ after(grammarAccess.getExpressiontermAccess().getTermBasicexpressionParserRuleCall_0_0_1()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressiontermprime__OpAlternatives_0_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressiontermprimeAccess().getOpAsteriskKeyword_0_0_0()); }
		'*'
		{ after(grammarAccess.getExpressiontermprimeAccess().getOpAsteriskKeyword_0_0_0()); }
	)
	|
	(
		{ before(grammarAccess.getExpressiontermprimeAccess().getOpSolidusKeyword_0_0_1()); }
		'/'
		{ after(grammarAccess.getExpressiontermprimeAccess().getOpSolidusKeyword_0_0_1()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__Alternatives
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionAtomAccess().getExpAssignment_0()); }
		(rule__ExpressionAtom__ExpAssignment_0)
		{ after(grammarAccess.getExpressionAtomAccess().getExpAssignment_0()); }
	)
	|
	(
		{ before(grammarAccess.getExpressionAtomAccess().getGroup_1()); }
		(rule__ExpressionAtom__Group_1__0)
		{ after(grammarAccess.getExpressionAtomAccess().getGroup_1()); }
	)
	|
	(
		{ before(grammarAccess.getExpressionAtomAccess().getGroup_2()); }
		(rule__ExpressionAtom__Group_2__0)
		{ after(grammarAccess.getExpressionAtomAccess().getGroup_2()); }
	)
	|
	(
		{ before(grammarAccess.getExpressionAtomAccess().getExpAssignment_3()); }
		(rule__ExpressionAtom__ExpAssignment_3)
		{ after(grammarAccess.getExpressionAtomAccess().getExpAssignment_3()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicexpression__Alternatives
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBasicexpressionAccess().getGroup_0()); }
		(rule__Basicexpression__Group_0__0)
		{ after(grammarAccess.getBasicexpressionAccess().getGroup_0()); }
	)
	|
	(
		{ before(grammarAccess.getBasicexpressionAccess().getExpAssignment_1()); }
		(rule__Basicexpression__ExpAssignment_1)
		{ after(grammarAccess.getBasicexpressionAccess().getExpAssignment_1()); }
	)
	|
	(
		{ before(grammarAccess.getBasicexpressionAccess().getExpAssignment_2()); }
		(rule__Basicexpression__ExpAssignment_2)
		{ after(grammarAccess.getBasicexpressionAccess().getExpAssignment_2()); }
	)
	|
	(
		{ before(grammarAccess.getBasicexpressionAccess().getExpAssignment_3()); }
		(rule__Basicexpression__ExpAssignment_3)
		{ after(grammarAccess.getBasicexpressionAccess().getExpAssignment_3()); }
	)
	|
	(
		{ before(grammarAccess.getBasicexpressionAccess().getExpAssignment_4()); }
		(rule__Basicexpression__ExpAssignment_4)
		{ after(grammarAccess.getBasicexpressionAccess().getExpAssignment_4()); }
	)
	|
	(
		{ before(grammarAccess.getBasicexpressionAccess().getExpAssignment_5()); }
		(rule__Basicexpression__ExpAssignment_5)
		{ after(grammarAccess.getBasicexpressionAccess().getExpAssignment_5()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicformulae__Alternatives
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBasicformulaeAccess().getFAssignment_0()); }
		(rule__Basicformulae__FAssignment_0)
		{ after(grammarAccess.getBasicformulaeAccess().getFAssignment_0()); }
	)
	|
	(
		{ before(grammarAccess.getBasicformulaeAccess().getFAssignment_1()); }
		(rule__Basicformulae__FAssignment_1)
		{ after(grammarAccess.getBasicformulaeAccess().getFAssignment_1()); }
	)
	|
	(
		{ before(grammarAccess.getBasicformulaeAccess().getFAssignment_2()); }
		(rule__Basicformulae__FAssignment_2)
		{ after(grammarAccess.getBasicformulaeAccess().getFAssignment_2()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Alternatives_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBoundtermAccess().getLAssignment_2_0()); }
		(rule__Boundterm__LAssignment_2_0)
		{ after(grammarAccess.getBoundtermAccess().getLAssignment_2_0()); }
	)
	|
	(
		{ before(grammarAccess.getBoundtermAccess().getLAssignment_2_1()); }
		(rule__Boundterm__LAssignment_2_1)
		{ after(grammarAccess.getBoundtermAccess().getLAssignment_2_1()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Alternatives_6
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBoundtermAccess().getRAssignment_6_0()); }
		(rule__Boundterm__RAssignment_6_0)
		{ after(grammarAccess.getBoundtermAccess().getRAssignment_6_0()); }
	)
	|
	(
		{ before(grammarAccess.getBoundtermAccess().getRAssignment_6_1()); }
		(rule__Boundterm__RAssignment_6_1)
		{ after(grammarAccess.getBoundtermAccess().getRAssignment_6_1()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__Alternatives
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTimedtermAccess().getInfAssignment_0()); }
		(rule__Timedterm__InfAssignment_0)
		{ after(grammarAccess.getTimedtermAccess().getInfAssignment_0()); }
	)
	|
	(
		{ before(grammarAccess.getTimedtermAccess().getNumberAssignment_1()); }
		(rule__Timedterm__NumberAssignment_1)
		{ after(grammarAccess.getTimedtermAccess().getNumberAssignment_1()); }
	)
	|
	(
		{ before(grammarAccess.getTimedtermAccess().getGroup_2()); }
		(rule__Timedterm__Group_2__0)
		{ after(grammarAccess.getTimedtermAccess().getGroup_2()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__Alternatives_2_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTimedtermAccess().getRefAssignment_2_0_0()); }
		(rule__Timedterm__RefAssignment_2_0_0)
		{ after(grammarAccess.getTimedtermAccess().getRefAssignment_2_0_0()); }
	)
	|
	(
		{ before(grammarAccess.getTimedtermAccess().getRefAssignment_2_0_1()); }
		(rule__Timedterm__RefAssignment_2_0_1)
		{ after(grammarAccess.getTimedtermAccess().getRefAssignment_2_0_1()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__OpAlternatives_2_1_0_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTimedtermAccess().getOpPLUSParserRuleCall_2_1_0_0_0()); }
		rulePLUS
		{ after(grammarAccess.getTimedtermAccess().getOpPLUSParserRuleCall_2_1_0_0_0()); }
	)
	|
	(
		{ before(grammarAccess.getTimedtermAccess().getOpMINUSParserRuleCall_2_1_0_0_1()); }
		ruleMINUS
		{ after(grammarAccess.getTimedtermAccess().getOpMINUSParserRuleCall_2_1_0_0_1()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Alternatives
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getAtomAccess().getGroup_0()); }
		(rule__Atom__Group_0__0)
		{ after(grammarAccess.getAtomAccess().getGroup_0()); }
	)
	|
	(
		{ before(grammarAccess.getAtomAccess().getGroup_1()); }
		(rule__Atom__Group_1__0)
		{ after(grammarAccess.getAtomAccess().getGroup_1()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Value__Alternatives
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getValueAccess().getGroup_0()); }
		(rule__Value__Group_0__0)
		{ after(grammarAccess.getValueAccess().getGroup_0()); }
	)
	|
	(
		{ before(grammarAccess.getValueAccess().getNumberAssignment_1()); }
		(rule__Value__NumberAssignment_1)
		{ after(grammarAccess.getValueAccess().getNumberAssignment_1()); }
	)
	|
	(
		{ before(grammarAccess.getValueAccess().getRefAssignment_2()); }
		(rule__Value__RefAssignment_2)
		{ after(grammarAccess.getValueAccess().getRefAssignment_2()); }
	)
	|
	(
		{ before(grammarAccess.getValueAccess().getFloatAssignment_3()); }
		(rule__Value__FloatAssignment_3)
		{ after(grammarAccess.getValueAccess().getFloatAssignment_3()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Alternatives
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSignalAccess().getGroup_0()); }
		(rule__Signal__Group_0__0)
		{ after(grammarAccess.getSignalAccess().getGroup_0()); }
	)
	|
	(
		{ before(grammarAccess.getSignalAccess().getGroup_1()); }
		(rule__Signal__Group_1__0)
		{ after(grammarAccess.getSignalAccess().getGroup_1()); }
	)
	|
	(
		{ before(grammarAccess.getSignalAccess().getGroup_2()); }
		(rule__Signal__Group_2__0)
		{ after(grammarAccess.getSignalAccess().getGroup_2()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__PATH__Alternatives_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getPATHAccess().getFullStopFullStopSolidusKeyword_0_0()); }
		('../')*
		{ after(grammarAccess.getPATHAccess().getFullStopFullStopSolidusKeyword_0_0()); }
	)
	|
	(
		{ before(grammarAccess.getPATHAccess().getFullStopSolidusKeyword_0_1()); }
		'./'
		{ after(grammarAccess.getPATHAccess().getFullStopSolidusKeyword_0_1()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Number__Alternatives
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_0()); }
		RULE_INT
		{ after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_0()); }
	)
	|
	(
		{ before(grammarAccess.getNumberAccess().getDIGITTerminalRuleCall_1()); }
		RULE_DIGIT
		{ after(grammarAccess.getNumberAccess().getDIGITTerminalRuleCall_1()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__RELOP__Alternatives
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getRELOPAccess().getGEParserRuleCall_0()); }
		ruleGE
		{ after(grammarAccess.getRELOPAccess().getGEParserRuleCall_0()); }
	)
	|
	(
		{ before(grammarAccess.getRELOPAccess().getLEParserRuleCall_1()); }
		ruleLE
		{ after(grammarAccess.getRELOPAccess().getLEParserRuleCall_1()); }
	)
	|
	(
		{ before(grammarAccess.getRELOPAccess().getEQParserRuleCall_2()); }
		ruleEQ
		{ after(grammarAccess.getRELOPAccess().getEQParserRuleCall_2()); }
	)
	|
	(
		{ before(grammarAccess.getRELOPAccess().getLEQParserRuleCall_3()); }
		ruleLEQ
		{ after(grammarAccess.getRELOPAccess().getLEQParserRuleCall_3()); }
	)
	|
	(
		{ before(grammarAccess.getRELOPAccess().getGEQParserRuleCall_4()); }
		ruleGEQ
		{ after(grammarAccess.getRELOPAccess().getGEQParserRuleCall_4()); }
	)
	|
	(
		{ before(grammarAccess.getRELOPAccess().getNEQParserRuleCall_5()); }
		ruleNEQ
		{ after(grammarAccess.getRELOPAccess().getNEQParserRuleCall_5()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__SIGN__Alternatives
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSIGNAccess().getPLUSParserRuleCall_0()); }
		rulePLUS
		{ after(grammarAccess.getSIGNAccess().getPLUSParserRuleCall_0()); }
	)
	|
	(
		{ before(grammarAccess.getSIGNAccess().getMINUSParserRuleCall_1()); }
		ruleMINUS
		{ after(grammarAccess.getSIGNAccess().getMINUSParserRuleCall_1()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group__0__Impl
	rule__Oracle__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getOracleKeyword_0()); }
	'Oracle'
	{ after(grammarAccess.getOracleAccess().getOracleKeyword_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group__1__Impl
	rule__Oracle__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getModelNameKeyword_1()); }
	'ModelName:'
	{ after(grammarAccess.getOracleAccess().getModelNameKeyword_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group__2__Impl
	rule__Oracle__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getModelNameAssignment_2()); }
	(rule__Oracle__ModelNameAssignment_2)
	{ after(grammarAccess.getOracleAccess().getModelNameAssignment_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group__3__Impl
	rule__Oracle__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getSemicolonKeyword_3()); }
	';'
	{ after(grammarAccess.getOracleAccess().getSemicolonKeyword_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__4
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group__4__Impl
	rule__Oracle__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__4__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getGroup_4()); }
	(rule__Oracle__Group_4__0)?
	{ after(grammarAccess.getOracleAccess().getGroup_4()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__5
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group__5__Impl
	rule__Oracle__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__5__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getIDKeyword_5()); }
	'ID:'
	{ after(grammarAccess.getOracleAccess().getIDKeyword_5()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__6
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group__6__Impl
	rule__Oracle__Group__7
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__6__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getReqnameAssignment_6()); }
	(rule__Oracle__ReqnameAssignment_6)
	{ after(grammarAccess.getOracleAccess().getReqnameAssignment_6()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__7
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group__7__Impl
	rule__Oracle__Group__8
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__7__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getSemicolonKeyword_7()); }
	';'
	{ after(grammarAccess.getOracleAccess().getSemicolonKeyword_7()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__8
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group__8__Impl
	rule__Oracle__Group__9
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__8__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getSigndefAssignment_8()); }
	(rule__Oracle__SigndefAssignment_8)
	{ after(grammarAccess.getOracleAccess().getSigndefAssignment_8()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__9
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group__9__Impl
	rule__Oracle__Group__10
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__9__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getConstantDefinitionsAssignment_9()); }
	(rule__Oracle__ConstantDefinitionsAssignment_9)?
	{ after(grammarAccess.getOracleAccess().getConstantDefinitionsAssignment_9()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__10
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group__10__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group__10__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getRequirementAssignment_10()); }
	(rule__Oracle__RequirementAssignment_10)
	{ after(grammarAccess.getOracleAccess().getRequirementAssignment_10()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Oracle__Group_4__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group_4__0__Impl
	rule__Oracle__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group_4__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getPathKeyword_4_0()); }
	'Path:'
	{ after(grammarAccess.getOracleAccess().getPathKeyword_4_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group_4__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group_4__1__Impl
	rule__Oracle__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group_4__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getPathAssignment_4_1()); }
	(rule__Oracle__PathAssignment_4_1)
	{ after(grammarAccess.getOracleAccess().getPathAssignment_4_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group_4__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Oracle__Group_4__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__Group_4__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getOracleAccess().getSemicolonKeyword_4_2()); }
	';'
	{ after(grammarAccess.getOracleAccess().getSemicolonKeyword_4_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Requirement__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Requirement__Group__0__Impl
	rule__Requirement__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Requirement__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getRequirementAccess().getDescriptionKeyword_0()); }
	'Description:'
	{ after(grammarAccess.getRequirementAccess().getDescriptionKeyword_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Requirement__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Requirement__Group__1__Impl
	rule__Requirement__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Requirement__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getRequirementAccess().getDESCRIPTIONTerminalRuleCall_1()); }
	RULE_DESCRIPTION
	{ after(grammarAccess.getRequirementAccess().getDESCRIPTIONTerminalRuleCall_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Requirement__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Requirement__Group__2__Impl
	rule__Requirement__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Requirement__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getRequirementAccess().getSemicolonKeyword_2()); }
	';'
	{ after(grammarAccess.getRequirementAccess().getSemicolonKeyword_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Requirement__Group__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Requirement__Group__3__Impl
	rule__Requirement__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Requirement__Group__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getRequirementAccess().getSpecificationKeyword_3()); }
	'Specification:'
	{ after(grammarAccess.getRequirementAccess().getSpecificationKeyword_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Requirement__Group__4
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Requirement__Group__4__Impl
	rule__Requirement__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__Requirement__Group__4__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getRequirementAccess().getFormulaAssignment_4()); }
	(rule__Requirement__FormulaAssignment_4)
	{ after(grammarAccess.getRequirementAccess().getFormulaAssignment_4()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Requirement__Group__5
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Requirement__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Requirement__Group__5__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getRequirementAccess().getSemicolonKeyword_5()); }
	';'
	{ after(grammarAccess.getRequirementAccess().getSemicolonKeyword_5()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__ReqId__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ReqId__Group__0__Impl
	rule__ReqId__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ReqId__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getReqIdAccess().getIDTerminalRuleCall_0()); }
	RULE_ID
	{ after(grammarAccess.getReqIdAccess().getIDTerminalRuleCall_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ReqId__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ReqId__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ReqId__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getReqIdAccess().getGroup_1()); }
	(rule__ReqId__Group_1__0)?
	{ after(grammarAccess.getReqIdAccess().getGroup_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__ReqId__Group_1__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ReqId__Group_1__0__Impl
	rule__ReqId__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ReqId__Group_1__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getReqIdAccess().get_Keyword_1_0()); }
	'_'
	{ after(grammarAccess.getReqIdAccess().get_Keyword_1_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ReqId__Group_1__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ReqId__Group_1__1__Impl
	rule__ReqId__Group_1__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ReqId__Group_1__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getReqIdAccess().getNumberParserRuleCall_1_1()); }
	rulenumber
	{ after(grammarAccess.getReqIdAccess().getNumberParserRuleCall_1_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ReqId__Group_1__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ReqId__Group_1__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ReqId__Group_1__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getReqIdAccess().getGroup_1_2()); }
	(rule__ReqId__Group_1_2__0)*
	{ after(grammarAccess.getReqIdAccess().getGroup_1_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__ReqId__Group_1_2__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ReqId__Group_1_2__0__Impl
	rule__ReqId__Group_1_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ReqId__Group_1_2__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getReqIdAccess().get_Keyword_1_2_0()); }
	'_'
	{ after(grammarAccess.getReqIdAccess().get_Keyword_1_2_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ReqId__Group_1_2__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ReqId__Group_1_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ReqId__Group_1_2__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getReqIdAccess().getNumberParserRuleCall_1_2_1()); }
	rulenumber
	{ after(grammarAccess.getReqIdAccess().getNumberParserRuleCall_1_2_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Signalsdefinition__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signalsdefinition__Group__0__Impl
	rule__Signalsdefinition__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Signalsdefinition__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalsdefinitionAccess().getSignalsKeyword_0()); }
	'Signals'
	{ after(grammarAccess.getSignalsdefinitionAccess().getSignalsKeyword_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signalsdefinition__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signalsdefinition__Group__1__Impl
	rule__Signalsdefinition__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Signalsdefinition__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalsdefinitionAccess().getSignalsAssignment_1()); }
	(rule__Signalsdefinition__SignalsAssignment_1)
	{ after(grammarAccess.getSignalsdefinitionAccess().getSignalsAssignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signalsdefinition__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signalsdefinition__Group__2__Impl
	rule__Signalsdefinition__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Signalsdefinition__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalsdefinitionAccess().getGroup_2()); }
	(rule__Signalsdefinition__Group_2__0)*
	{ after(grammarAccess.getSignalsdefinitionAccess().getGroup_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signalsdefinition__Group__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signalsdefinition__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Signalsdefinition__Group__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalsdefinitionAccess().getSemicolonKeyword_3()); }
	';'
	{ after(grammarAccess.getSignalsdefinitionAccess().getSemicolonKeyword_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Signalsdefinition__Group_2__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signalsdefinition__Group_2__0__Impl
	rule__Signalsdefinition__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Signalsdefinition__Group_2__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalsdefinitionAccess().getCommaKeyword_2_0()); }
	','
	{ after(grammarAccess.getSignalsdefinitionAccess().getCommaKeyword_2_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signalsdefinition__Group_2__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signalsdefinition__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Signalsdefinition__Group_2__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalsdefinitionAccess().getSignalsAssignment_2_1()); }
	(rule__Signalsdefinition__SignalsAssignment_2_1)
	{ after(grammarAccess.getSignalsdefinitionAccess().getSignalsAssignment_2_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__ConstantsDefinition__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ConstantsDefinition__Group__0__Impl
	rule__ConstantsDefinition__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantsDefinition__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getConstantsDefinitionAccess().getConstantsKeyword_0()); }
	'Constants'
	{ after(grammarAccess.getConstantsDefinitionAccess().getConstantsKeyword_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantsDefinition__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ConstantsDefinition__Group__1__Impl
	rule__ConstantsDefinition__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantsDefinition__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getConstantsDefinitionAccess().getConstantsAssignment_1()); }
	(rule__ConstantsDefinition__ConstantsAssignment_1)
	{ after(grammarAccess.getConstantsDefinitionAccess().getConstantsAssignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantsDefinition__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ConstantsDefinition__Group__2__Impl
	rule__ConstantsDefinition__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantsDefinition__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getConstantsDefinitionAccess().getGroup_2()); }
	(rule__ConstantsDefinition__Group_2__0)*
	{ after(grammarAccess.getConstantsDefinitionAccess().getGroup_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantsDefinition__Group__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ConstantsDefinition__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantsDefinition__Group__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getConstantsDefinitionAccess().getSemicolonKeyword_3()); }
	';'
	{ after(grammarAccess.getConstantsDefinitionAccess().getSemicolonKeyword_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__ConstantsDefinition__Group_2__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ConstantsDefinition__Group_2__0__Impl
	rule__ConstantsDefinition__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantsDefinition__Group_2__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getConstantsDefinitionAccess().getCommaKeyword_2_0()); }
	','
	{ after(grammarAccess.getConstantsDefinitionAccess().getCommaKeyword_2_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantsDefinition__Group_2__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ConstantsDefinition__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantsDefinition__Group_2__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getConstantsDefinitionAccess().getConstantsAssignment_2_1()); }
	(rule__ConstantsDefinition__ConstantsAssignment_2_1)
	{ after(grammarAccess.getConstantsDefinitionAccess().getConstantsAssignment_2_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__ConstantDefinition__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ConstantDefinition__Group__0__Impl
	rule__ConstantDefinition__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantDefinition__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getConstantDefinitionAccess().getConstantidAssignment_0()); }
	(rule__ConstantDefinition__ConstantidAssignment_0)
	{ after(grammarAccess.getConstantDefinitionAccess().getConstantidAssignment_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantDefinition__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ConstantDefinition__Group__1__Impl
	rule__ConstantDefinition__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantDefinition__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getConstantDefinitionAccess().getEQParserRuleCall_1()); }
	ruleEQ
	{ after(grammarAccess.getConstantDefinitionAccess().getEQParserRuleCall_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantDefinition__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ConstantDefinition__Group__2__Impl
	rule__ConstantDefinition__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantDefinition__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getConstantDefinitionAccess().getSIGNParserRuleCall_2()); }
	(ruleSIGN)?
	{ after(grammarAccess.getConstantDefinitionAccess().getSIGNParserRuleCall_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantDefinition__Group__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ConstantDefinition__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantDefinition__Group__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getConstantDefinitionAccess().getValueAssignment_3()); }
	(rule__ConstantDefinition__ValueAssignment_3)
	{ after(grammarAccess.getConstantDefinitionAccess().getValueAssignment_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__ForAllformula__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ForAllformula__Group__0__Impl
	rule__ForAllformula__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ForAllformula__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getForAllformulaAccess().getFORALLParserRuleCall_0()); }
	ruleFORALL
	{ after(grammarAccess.getForAllformulaAccess().getFORALLParserRuleCall_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ForAllformula__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ForAllformula__Group__1__Impl
	rule__ForAllformula__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ForAllformula__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getForAllformulaAccess().getBoundAssignment_1()); }
	(rule__ForAllformula__BoundAssignment_1)
	{ after(grammarAccess.getForAllformulaAccess().getBoundAssignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ForAllformula__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ForAllformula__Group__2__Impl
	rule__ForAllformula__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__ForAllformula__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getForAllformulaAccess().getCOLONParserRuleCall_2()); }
	ruleCOLON
	{ after(grammarAccess.getForAllformulaAccess().getCOLONParserRuleCall_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ForAllformula__Group__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ForAllformula__Group__3__Impl
	rule__ForAllformula__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__ForAllformula__Group__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getForAllformulaAccess().getLPARENParserRuleCall_3()); }
	ruleLPAREN
	{ after(grammarAccess.getForAllformulaAccess().getLPARENParserRuleCall_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ForAllformula__Group__4
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ForAllformula__Group__4__Impl
	rule__ForAllformula__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__ForAllformula__Group__4__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getForAllformulaAccess().getForallchildAssignment_4()); }
	(rule__ForAllformula__ForallchildAssignment_4)
	{ after(grammarAccess.getForAllformulaAccess().getForallchildAssignment_4()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ForAllformula__Group__5
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ForAllformula__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ForAllformula__Group__5__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getForAllformulaAccess().getRPARENParserRuleCall_5()); }
	ruleRPAREN
	{ after(grammarAccess.getForAllformulaAccess().getRPARENParserRuleCall_5()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Existsformula__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Existsformula__Group__0__Impl
	rule__Existsformula__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Existsformula__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExistsformulaAccess().getEXISTSParserRuleCall_0()); }
	ruleEXISTS
	{ after(grammarAccess.getExistsformulaAccess().getEXISTSParserRuleCall_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Existsformula__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Existsformula__Group__1__Impl
	rule__Existsformula__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Existsformula__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExistsformulaAccess().getBoundAssignment_1()); }
	(rule__Existsformula__BoundAssignment_1)
	{ after(grammarAccess.getExistsformulaAccess().getBoundAssignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Existsformula__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Existsformula__Group__2__Impl
	rule__Existsformula__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Existsformula__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExistsformulaAccess().getCOLONParserRuleCall_2()); }
	ruleCOLON
	{ after(grammarAccess.getExistsformulaAccess().getCOLONParserRuleCall_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Existsformula__Group__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Existsformula__Group__3__Impl
	rule__Existsformula__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Existsformula__Group__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExistsformulaAccess().getLPARENParserRuleCall_3()); }
	ruleLPAREN
	{ after(grammarAccess.getExistsformulaAccess().getLPARENParserRuleCall_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Existsformula__Group__4
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Existsformula__Group__4__Impl
	rule__Existsformula__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__Existsformula__Group__4__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExistsformulaAccess().getExistschildAssignment_4()); }
	(rule__Existsformula__ExistschildAssignment_4)
	{ after(grammarAccess.getExistsformulaAccess().getExistschildAssignment_4()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Existsformula__Group__5
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Existsformula__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Existsformula__Group__5__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExistsformulaAccess().getRPARENParserRuleCall_5()); }
	ruleRPAREN
	{ after(grammarAccess.getExistsformulaAccess().getRPARENParserRuleCall_5()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Negationformula__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Negationformula__Group__0__Impl
	rule__Negationformula__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Negationformula__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getNegationformulaAccess().getNOTParserRuleCall_0()); }
	ruleNOT
	{ after(grammarAccess.getNegationformulaAccess().getNOTParserRuleCall_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Negationformula__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Negationformula__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Negationformula__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getNegationformulaAccess().getNegationchildAssignment_1()); }
	(rule__Negationformula__NegationchildAssignment_1)
	{ after(grammarAccess.getNegationformulaAccess().getNegationchildAssignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Formulab__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Formulab__Group__0__Impl
	rule__Formulab__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulab__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getFormulabAccess().getAAssignment_0()); }
	(rule__Formulab__AAssignment_0)
	{ after(grammarAccess.getFormulabAccess().getAAssignment_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulab__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Formulab__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulab__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getFormulabAccess().getTAssignment_1()); }
	(rule__Formulab__TAssignment_1)
	{ after(grammarAccess.getFormulabAccess().getTAssignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Formulabprime__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Formulabprime__Group__0__Impl
	rule__Formulabprime__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulabprime__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getFormulabprimeAccess().getOpAssignment_0()); }
	(rule__Formulabprime__OpAssignment_0)
	{ after(grammarAccess.getFormulabprimeAccess().getOpAssignment_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulabprime__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Formulabprime__Group__1__Impl
	rule__Formulabprime__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulabprime__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getFormulabprimeAccess().getT2Assignment_1()); }
	(rule__Formulabprime__T2Assignment_1)
	{ after(grammarAccess.getFormulabprimeAccess().getT2Assignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulabprime__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Formulabprime__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulabprime__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getFormulabprimeAccess().getFAssignment_2()); }
	(rule__Formulabprime__FAssignment_2)
	{ after(grammarAccess.getFormulabprimeAccess().getFAssignment_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Term__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Term__Group__0__Impl
	rule__Term__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Term__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getTermAccess().getAAssignment_0()); }
	(rule__Term__AAssignment_0)
	{ after(grammarAccess.getTermAccess().getAAssignment_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Term__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Term__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Term__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getTermAccess().getTAssignment_1()); }
	(rule__Term__TAssignment_1)
	{ after(grammarAccess.getTermAccess().getTAssignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Termprime__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Termprime__Group__0__Impl
	rule__Termprime__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Termprime__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getTermprimeAccess().getOpAssignment_0()); }
	(rule__Termprime__OpAssignment_0)
	{ after(grammarAccess.getTermprimeAccess().getOpAssignment_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Termprime__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Termprime__Group__1__Impl
	rule__Termprime__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Termprime__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getTermprimeAccess().getTAssignment_1()); }
	(rule__Termprime__TAssignment_1)
	{ after(grammarAccess.getTermprimeAccess().getTAssignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Termprime__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Termprime__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Termprime__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getTermprimeAccess().getF1Assignment_2()); }
	(rule__Termprime__F1Assignment_2)
	{ after(grammarAccess.getTermprimeAccess().getF1Assignment_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Expressionb__Group_0__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressionb__Group_0__0__Impl
	rule__Expressionb__Group_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__Group_0__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionbAccess().getTermAssignment_0_0()); }
	(rule__Expressionb__TermAssignment_0_0)
	{ after(grammarAccess.getExpressionbAccess().getTermAssignment_0_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__Group_0__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressionb__Group_0__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__Group_0__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionbAccess().getExpprimeAssignment_0_1()); }
	(rule__Expressionb__ExpprimeAssignment_0_1)
	{ after(grammarAccess.getExpressionbAccess().getExpprimeAssignment_0_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Expressionb__Group_1__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressionb__Group_1__0__Impl
	rule__Expressionb__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__Group_1__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionbAccess().getLPARENParserRuleCall_1_0()); }
	ruleLPAREN
	{ after(grammarAccess.getExpressionbAccess().getLPARENParserRuleCall_1_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__Group_1__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressionb__Group_1__1__Impl
	rule__Expressionb__Group_1__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__Group_1__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionbAccess().getTermAssignment_1_1()); }
	(rule__Expressionb__TermAssignment_1_1)
	{ after(grammarAccess.getExpressionbAccess().getTermAssignment_1_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__Group_1__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressionb__Group_1__2__Impl
	rule__Expressionb__Group_1__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__Group_1__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionbAccess().getRPARENParserRuleCall_1_2()); }
	ruleRPAREN
	{ after(grammarAccess.getExpressionbAccess().getRPARENParserRuleCall_1_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__Group_1__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressionb__Group_1__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__Group_1__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionbAccess().getExpprimeAssignment_1_3()); }
	(rule__Expressionb__ExpprimeAssignment_1_3)
	{ after(grammarAccess.getExpressionbAccess().getExpprimeAssignment_1_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Expressionprime__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressionprime__Group__0__Impl
	rule__Expressionprime__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionprime__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionprimeAccess().getOpAssignment_0()); }
	(rule__Expressionprime__OpAssignment_0)
	{ after(grammarAccess.getExpressionprimeAccess().getOpAssignment_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionprime__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressionprime__Group__1__Impl
	rule__Expressionprime__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionprime__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionprimeAccess().getT2Assignment_1()); }
	(rule__Expressionprime__T2Assignment_1)
	{ after(grammarAccess.getExpressionprimeAccess().getT2Assignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionprime__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressionprime__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionprime__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionprimeAccess().getFAssignment_2()); }
	(rule__Expressionprime__FAssignment_2)
	{ after(grammarAccess.getExpressionprimeAccess().getFAssignment_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Expressionterm__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressionterm__Group__0__Impl
	rule__Expressionterm__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionterm__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressiontermAccess().getTermAssignment_0()); }
	(rule__Expressionterm__TermAssignment_0)
	{ after(grammarAccess.getExpressiontermAccess().getTermAssignment_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionterm__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressionterm__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionterm__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressiontermAccess().getExpprimeAssignment_1()); }
	(rule__Expressionterm__ExpprimeAssignment_1)
	{ after(grammarAccess.getExpressiontermAccess().getExpprimeAssignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Expressiontermprime__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressiontermprime__Group__0__Impl
	rule__Expressiontermprime__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressiontermprime__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressiontermprimeAccess().getOpAssignment_0()); }
	(rule__Expressiontermprime__OpAssignment_0)
	{ after(grammarAccess.getExpressiontermprimeAccess().getOpAssignment_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressiontermprime__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressiontermprime__Group__1__Impl
	rule__Expressiontermprime__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressiontermprime__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressiontermprimeAccess().getT2Assignment_1()); }
	(rule__Expressiontermprime__T2Assignment_1)
	{ after(grammarAccess.getExpressiontermprimeAccess().getT2Assignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressiontermprime__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Expressiontermprime__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressiontermprime__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressiontermprimeAccess().getFAssignment_2()); }
	(rule__Expressiontermprime__FAssignment_2)
	{ after(grammarAccess.getExpressiontermprimeAccess().getFAssignment_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__ExpressionAtom__Group_1__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ExpressionAtom__Group_1__0__Impl
	rule__ExpressionAtom__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__Group_1__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionAtomAccess().getLPARENParserRuleCall_1_0()); }
	ruleLPAREN
	{ after(grammarAccess.getExpressionAtomAccess().getLPARENParserRuleCall_1_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__Group_1__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ExpressionAtom__Group_1__1__Impl
	rule__ExpressionAtom__Group_1__2
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__Group_1__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionAtomAccess().getExpAssignment_1_1()); }
	(rule__ExpressionAtom__ExpAssignment_1_1)
	{ after(grammarAccess.getExpressionAtomAccess().getExpAssignment_1_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__Group_1__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ExpressionAtom__Group_1__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__Group_1__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionAtomAccess().getRPARENParserRuleCall_1_2()); }
	ruleRPAREN
	{ after(grammarAccess.getExpressionAtomAccess().getRPARENParserRuleCall_1_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__ExpressionAtom__Group_2__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ExpressionAtom__Group_2__0__Impl
	rule__ExpressionAtom__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__Group_2__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionAtomAccess().getOpAssignment_2_0()); }
	(rule__ExpressionAtom__OpAssignment_2_0)
	{ after(grammarAccess.getExpressionAtomAccess().getOpAssignment_2_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__Group_2__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__ExpressionAtom__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__Group_2__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getExpressionAtomAccess().getExpAssignment_2_1()); }
	(rule__ExpressionAtom__ExpAssignment_2_1)
	{ after(grammarAccess.getExpressionAtomAccess().getExpAssignment_2_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Basicexpression__Group_0__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Basicexpression__Group_0__0__Impl
	rule__Basicexpression__Group_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicexpression__Group_0__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getBasicexpressionAccess().getLPARENParserRuleCall_0_0()); }
	ruleLPAREN
	{ after(grammarAccess.getBasicexpressionAccess().getLPARENParserRuleCall_0_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicexpression__Group_0__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Basicexpression__Group_0__1__Impl
	rule__Basicexpression__Group_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicexpression__Group_0__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getBasicexpressionAccess().getExpAssignment_0_1()); }
	(rule__Basicexpression__ExpAssignment_0_1)
	{ after(grammarAccess.getBasicexpressionAccess().getExpAssignment_0_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicexpression__Group_0__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Basicexpression__Group_0__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicexpression__Group_0__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getBasicexpressionAccess().getRPARENParserRuleCall_0_2()); }
	ruleRPAREN
	{ after(grammarAccess.getBasicexpressionAccess().getRPARENParserRuleCall_0_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Boundterm__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Boundterm__Group__0__Impl
	rule__Boundterm__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getBoundtermAccess().getRefAssignment_0()); }
	(rule__Boundterm__RefAssignment_0)
	{ after(grammarAccess.getBoundtermAccess().getRefAssignment_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Boundterm__Group__1__Impl
	rule__Boundterm__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getBoundtermAccess().getINParserRuleCall_1()); }
	ruleIN
	{ after(grammarAccess.getBoundtermAccess().getINParserRuleCall_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Boundterm__Group__2__Impl
	rule__Boundterm__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getBoundtermAccess().getAlternatives_2()); }
	(rule__Boundterm__Alternatives_2)
	{ after(grammarAccess.getBoundtermAccess().getAlternatives_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Group__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Boundterm__Group__3__Impl
	rule__Boundterm__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Group__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getBoundtermAccess().getLeftboundAssignment_3()); }
	(rule__Boundterm__LeftboundAssignment_3)
	{ after(grammarAccess.getBoundtermAccess().getLeftboundAssignment_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Group__4
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Boundterm__Group__4__Impl
	rule__Boundterm__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Group__4__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getBoundtermAccess().getCOMMAParserRuleCall_4()); }
	ruleCOMMA
	{ after(grammarAccess.getBoundtermAccess().getCOMMAParserRuleCall_4()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Group__5
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Boundterm__Group__5__Impl
	rule__Boundterm__Group__6
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Group__5__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getBoundtermAccess().getRightboundAssignment_5()); }
	(rule__Boundterm__RightboundAssignment_5)
	{ after(grammarAccess.getBoundtermAccess().getRightboundAssignment_5()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Group__6
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Boundterm__Group__6__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__Group__6__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getBoundtermAccess().getAlternatives_6()); }
	(rule__Boundterm__Alternatives_6)
	{ after(grammarAccess.getBoundtermAccess().getAlternatives_6()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Timedterm__Group_2__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Timedterm__Group_2__0__Impl
	rule__Timedterm__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__Group_2__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getTimedtermAccess().getAlternatives_2_0()); }
	(rule__Timedterm__Alternatives_2_0)
	{ after(grammarAccess.getTimedtermAccess().getAlternatives_2_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__Group_2__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Timedterm__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__Group_2__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getTimedtermAccess().getGroup_2_1()); }
	(rule__Timedterm__Group_2_1__0)?
	{ after(grammarAccess.getTimedtermAccess().getGroup_2_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Timedterm__Group_2_1__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Timedterm__Group_2_1__0__Impl
	rule__Timedterm__Group_2_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__Group_2_1__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getTimedtermAccess().getOpAssignment_2_1_0()); }
	(rule__Timedterm__OpAssignment_2_1_0)
	{ after(grammarAccess.getTimedtermAccess().getOpAssignment_2_1_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__Group_2_1__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Timedterm__Group_2_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__Group_2_1__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getTimedtermAccess().getValueAssignment_2_1_1()); }
	(rule__Timedterm__ValueAssignment_2_1_1)
	{ after(grammarAccess.getTimedtermAccess().getValueAssignment_2_1_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Atom__Group_0__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Atom__Group_0__0__Impl
	rule__Atom__Group_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_0__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getAtomAccess().getLPARENParserRuleCall_0_0()); }
	ruleLPAREN
	{ after(grammarAccess.getAtomAccess().getLPARENParserRuleCall_0_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_0__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Atom__Group_0__1__Impl
	rule__Atom__Group_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_0__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getAtomAccess().getFAssignment_0_1()); }
	(rule__Atom__FAssignment_0_1)
	{ after(grammarAccess.getAtomAccess().getFAssignment_0_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_0__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Atom__Group_0__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_0__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getAtomAccess().getRPARENParserRuleCall_0_2()); }
	ruleRPAREN
	{ after(grammarAccess.getAtomAccess().getRPARENParserRuleCall_0_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Atom__Group_1__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Atom__Group_1__0__Impl
	rule__Atom__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_1__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getAtomAccess().getLeftCurlyBracketKeyword_1_0()); }
	'{'
	{ after(grammarAccess.getAtomAccess().getLeftCurlyBracketKeyword_1_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_1__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Atom__Group_1__1__Impl
	rule__Atom__Group_1__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_1__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getAtomAccess().getS1Assignment_1_1()); }
	(rule__Atom__S1Assignment_1_1)
	{ after(grammarAccess.getAtomAccess().getS1Assignment_1_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_1__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Atom__Group_1__2__Impl
	rule__Atom__Group_1__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_1__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getAtomAccess().getOpAssignment_1_2()); }
	(rule__Atom__OpAssignment_1_2)
	{ after(grammarAccess.getAtomAccess().getOpAssignment_1_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_1__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Atom__Group_1__3__Impl
	rule__Atom__Group_1__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_1__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getAtomAccess().getS2Assignment_1_3()); }
	(rule__Atom__S2Assignment_1_3)
	{ after(grammarAccess.getAtomAccess().getS2Assignment_1_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_1__4
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Atom__Group_1__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__Group_1__4__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getAtomAccess().getRightCurlyBracketKeyword_1_4()); }
	'}'
	{ after(grammarAccess.getAtomAccess().getRightCurlyBracketKeyword_1_4()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Value__Group_0__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Value__Group_0__0__Impl
	rule__Value__Group_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Value__Group_0__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getValueAccess().getLPARENParserRuleCall_0_0()); }
	ruleLPAREN
	{ after(grammarAccess.getValueAccess().getLPARENParserRuleCall_0_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Value__Group_0__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Value__Group_0__1__Impl
	rule__Value__Group_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Value__Group_0__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getValueAccess().getExpAssignment_0_1()); }
	(rule__Value__ExpAssignment_0_1)
	{ after(grammarAccess.getValueAccess().getExpAssignment_0_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Value__Group_0__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Value__Group_0__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Value__Group_0__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getValueAccess().getRPARENParserRuleCall_0_2()); }
	ruleRPAREN
	{ after(grammarAccess.getValueAccess().getRPARENParserRuleCall_0_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Signal__Group_0__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_0__0__Impl
	rule__Signal__Group_0__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_0__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getSignalidAssignment_0_0()); }
	(rule__Signal__SignalidAssignment_0_0)
	{ after(grammarAccess.getSignalAccess().getSignalidAssignment_0_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_0__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_0__1__Impl
	rule__Signal__Group_0__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_0__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getLPARENParserRuleCall_0_1()); }
	ruleLPAREN
	{ after(grammarAccess.getSignalAccess().getLPARENParserRuleCall_0_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_0__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_0__2__Impl
	rule__Signal__Group_0__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_0__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getTimdedtermAssignment_0_2()); }
	(rule__Signal__TimdedtermAssignment_0_2)
	{ after(grammarAccess.getSignalAccess().getTimdedtermAssignment_0_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_0__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_0__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_0__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getRPARENParserRuleCall_0_3()); }
	ruleRPAREN
	{ after(grammarAccess.getSignalAccess().getRPARENParserRuleCall_0_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Signal__Group_1__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_1__0__Impl
	rule__Signal__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_1__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getSignalidAssignment_1_0()); }
	(rule__Signal__SignalidAssignment_1_0)
	{ after(grammarAccess.getSignalAccess().getSignalidAssignment_1_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_1__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_1__1__Impl
	rule__Signal__Group_1__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_1__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getLSQUAREParserRuleCall_1_1()); }
	ruleLSQUARE
	{ after(grammarAccess.getSignalAccess().getLSQUAREParserRuleCall_1_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_1__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_1__2__Impl
	rule__Signal__Group_1__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_1__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getIndx1Assignment_1_2()); }
	(rule__Signal__Indx1Assignment_1_2)
	{ after(grammarAccess.getSignalAccess().getIndx1Assignment_1_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_1__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_1__3__Impl
	rule__Signal__Group_1__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_1__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getRSQUAREParserRuleCall_1_3()); }
	ruleRSQUARE
	{ after(grammarAccess.getSignalAccess().getRSQUAREParserRuleCall_1_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_1__4
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_1__4__Impl
	rule__Signal__Group_1__5
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_1__4__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getLPARENParserRuleCall_1_4()); }
	ruleLPAREN
	{ after(grammarAccess.getSignalAccess().getLPARENParserRuleCall_1_4()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_1__5
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_1__5__Impl
	rule__Signal__Group_1__6
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_1__5__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getTimdedtermAssignment_1_5()); }
	(rule__Signal__TimdedtermAssignment_1_5)
	{ after(grammarAccess.getSignalAccess().getTimdedtermAssignment_1_5()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_1__6
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_1__6__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_1__6__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getRPARENParserRuleCall_1_6()); }
	ruleRPAREN
	{ after(grammarAccess.getSignalAccess().getRPARENParserRuleCall_1_6()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Signal__Group_2__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_2__0__Impl
	rule__Signal__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getSignalidAssignment_2_0()); }
	(rule__Signal__SignalidAssignment_2_0)
	{ after(grammarAccess.getSignalAccess().getSignalidAssignment_2_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_2__1__Impl
	rule__Signal__Group_2__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getLSQUAREParserRuleCall_2_1()); }
	ruleLSQUARE
	{ after(grammarAccess.getSignalAccess().getLSQUAREParserRuleCall_2_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_2__2__Impl
	rule__Signal__Group_2__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getIndx1Assignment_2_2()); }
	(rule__Signal__Indx1Assignment_2_2)
	{ after(grammarAccess.getSignalAccess().getIndx1Assignment_2_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_2__3__Impl
	rule__Signal__Group_2__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getRSQUAREParserRuleCall_2_3()); }
	ruleRSQUARE
	{ after(grammarAccess.getSignalAccess().getRSQUAREParserRuleCall_2_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__4
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_2__4__Impl
	rule__Signal__Group_2__5
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__4__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getLSQUAREParserRuleCall_2_4()); }
	ruleLSQUARE
	{ after(grammarAccess.getSignalAccess().getLSQUAREParserRuleCall_2_4()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__5
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_2__5__Impl
	rule__Signal__Group_2__6
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__5__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getIndx2Assignment_2_5()); }
	(rule__Signal__Indx2Assignment_2_5)
	{ after(grammarAccess.getSignalAccess().getIndx2Assignment_2_5()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__6
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_2__6__Impl
	rule__Signal__Group_2__7
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__6__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getRSQUAREParserRuleCall_2_6()); }
	ruleRSQUARE
	{ after(grammarAccess.getSignalAccess().getRSQUAREParserRuleCall_2_6()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__7
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_2__7__Impl
	rule__Signal__Group_2__8
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__7__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getLPARENParserRuleCall_2_7()); }
	ruleLPAREN
	{ after(grammarAccess.getSignalAccess().getLPARENParserRuleCall_2_7()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__8
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_2__8__Impl
	rule__Signal__Group_2__9
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__8__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getTimdedtermAssignment_2_8()); }
	(rule__Signal__TimdedtermAssignment_2_8)
	{ after(grammarAccess.getSignalAccess().getTimdedtermAssignment_2_8()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__9
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Signal__Group_2__9__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Group_2__9__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSignalAccess().getRPARENParserRuleCall_2_9()); }
	ruleRPAREN
	{ after(grammarAccess.getSignalAccess().getRPARENParserRuleCall_2_9()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__AbsEXP__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__AbsEXP__Group__0__Impl
	rule__AbsEXP__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__AbsEXP__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getAbsEXPAccess().getVerticalLineKeyword_0()); }
	'|'
	{ after(grammarAccess.getAbsEXPAccess().getVerticalLineKeyword_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__AbsEXP__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__AbsEXP__Group__1__Impl
	rule__AbsEXP__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__AbsEXP__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getAbsEXPAccess().getExp1Assignment_1()); }
	(rule__AbsEXP__Exp1Assignment_1)
	{ after(grammarAccess.getAbsEXPAccess().getExp1Assignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__AbsEXP__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__AbsEXP__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__AbsEXP__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getAbsEXPAccess().getVerticalLineKeyword_2()); }
	'|'
	{ after(grammarAccess.getAbsEXPAccess().getVerticalLineKeyword_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Normexp__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Normexp__Group__0__Impl
	rule__Normexp__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Normexp__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getNormexpAccess().getVerticalLineVerticalLineKeyword_0()); }
	'||'
	{ after(grammarAccess.getNormexpAccess().getVerticalLineVerticalLineKeyword_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Normexp__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Normexp__Group__1__Impl
	rule__Normexp__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Normexp__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getNormexpAccess().getExp1Assignment_1()); }
	(rule__Normexp__Exp1Assignment_1)
	{ after(grammarAccess.getNormexpAccess().getExp1Assignment_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Normexp__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Normexp__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Normexp__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getNormexpAccess().getVerticalLineVerticalLineKeyword_2()); }
	'||'
	{ after(grammarAccess.getNormexpAccess().getVerticalLineVerticalLineKeyword_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Sin__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Sin__Group__0__Impl
	rule__Sin__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Sin__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSinAccess().getSinKeyword_0()); }
	'sin'
	{ after(grammarAccess.getSinAccess().getSinKeyword_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Sin__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Sin__Group__1__Impl
	rule__Sin__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Sin__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSinAccess().getLPARENParserRuleCall_1()); }
	ruleLPAREN
	{ after(grammarAccess.getSinAccess().getLPARENParserRuleCall_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Sin__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Sin__Group__2__Impl
	rule__Sin__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Sin__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSinAccess().getExp1Assignment_2()); }
	(rule__Sin__Exp1Assignment_2)
	{ after(grammarAccess.getSinAccess().getExp1Assignment_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Sin__Group__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Sin__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Sin__Group__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSinAccess().getRPARENParserRuleCall_3()); }
	ruleRPAREN
	{ after(grammarAccess.getSinAccess().getRPARENParserRuleCall_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Cos__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Cos__Group__0__Impl
	rule__Cos__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Cos__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getCosAccess().getCosKeyword_0()); }
	'cos'
	{ after(grammarAccess.getCosAccess().getCosKeyword_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Cos__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Cos__Group__1__Impl
	rule__Cos__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Cos__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getCosAccess().getLPARENParserRuleCall_1()); }
	ruleLPAREN
	{ after(grammarAccess.getCosAccess().getLPARENParserRuleCall_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Cos__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Cos__Group__2__Impl
	rule__Cos__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Cos__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getCosAccess().getExp1Assignment_2()); }
	(rule__Cos__Exp1Assignment_2)
	{ after(grammarAccess.getCosAccess().getExp1Assignment_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Cos__Group__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Cos__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Cos__Group__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getCosAccess().getRPARENParserRuleCall_3()); }
	ruleRPAREN
	{ after(grammarAccess.getCosAccess().getRPARENParserRuleCall_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Sqrt__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Sqrt__Group__0__Impl
	rule__Sqrt__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Sqrt__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSqrtAccess().getSqrtKeyword_0()); }
	'sqrt'
	{ after(grammarAccess.getSqrtAccess().getSqrtKeyword_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Sqrt__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Sqrt__Group__1__Impl
	rule__Sqrt__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Sqrt__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSqrtAccess().getLPARENParserRuleCall_1()); }
	ruleLPAREN
	{ after(grammarAccess.getSqrtAccess().getLPARENParserRuleCall_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Sqrt__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Sqrt__Group__2__Impl
	rule__Sqrt__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Sqrt__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSqrtAccess().getExp1Assignment_2()); }
	(rule__Sqrt__Exp1Assignment_2)
	{ after(grammarAccess.getSqrtAccess().getExp1Assignment_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__Sqrt__Group__3
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__Sqrt__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Sqrt__Group__3__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getSqrtAccess().getRPARENParserRuleCall_3()); }
	ruleRPAREN
	{ after(grammarAccess.getSqrtAccess().getRPARENParserRuleCall_3()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__FLOAT__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__FLOAT__Group__0__Impl
	rule__FLOAT__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__FLOAT__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getFLOATAccess().getNumberParserRuleCall_0()); }
	rulenumber
	{ after(grammarAccess.getFLOATAccess().getNumberParserRuleCall_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__FLOAT__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__FLOAT__Group__1__Impl
	rule__FLOAT__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__FLOAT__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getFLOATAccess().getFullStopKeyword_1()); }
	'.'
	{ after(grammarAccess.getFLOATAccess().getFullStopKeyword_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__FLOAT__Group__2
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__FLOAT__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__FLOAT__Group__2__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getFLOATAccess().getNumberParserRuleCall_2()); }
	rulenumber
	{ after(grammarAccess.getFLOATAccess().getNumberParserRuleCall_2()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__PATH__Group__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__PATH__Group__0__Impl
	rule__PATH__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__PATH__Group__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getPATHAccess().getAlternatives_0()); }
	(rule__PATH__Alternatives_0)
	{ after(grammarAccess.getPATHAccess().getAlternatives_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__PATH__Group__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__PATH__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__PATH__Group__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getPATHAccess().getGroup_1()); }
	(rule__PATH__Group_1__0)*
	{ after(grammarAccess.getPATHAccess().getGroup_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__PATH__Group_1__0
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__PATH__Group_1__0__Impl
	rule__PATH__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__PATH__Group_1__0__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getPATHAccess().getIDTerminalRuleCall_1_0()); }
	RULE_ID
	{ after(grammarAccess.getPATHAccess().getIDTerminalRuleCall_1_0()); }
)
;
finally {
	restoreStackSize(stackSize);
}

rule__PATH__Group_1__1
	@init {
		int stackSize = keepStackSize();
	}
:
	rule__PATH__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__PATH__Group_1__1__Impl
	@init {
		int stackSize = keepStackSize();
	}
:
(
	{ before(grammarAccess.getPATHAccess().getSolidusKeyword_1_1()); }
	'/'
	{ after(grammarAccess.getPATHAccess().getSolidusKeyword_1_1()); }
)
;
finally {
	restoreStackSize(stackSize);
}


rule__Socrates__OraclesAssignment
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSocratesAccess().getOraclesOracleParserRuleCall_0()); }
		ruleOracle
		{ after(grammarAccess.getSocratesAccess().getOraclesOracleParserRuleCall_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__ModelNameAssignment_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getOracleAccess().getModelNameIDTerminalRuleCall_2_0()); }
		RULE_ID
		{ after(grammarAccess.getOracleAccess().getModelNameIDTerminalRuleCall_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__PathAssignment_4_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getOracleAccess().getPathPATHParserRuleCall_4_1_0()); }
		rulePATH
		{ after(grammarAccess.getOracleAccess().getPathPATHParserRuleCall_4_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__ReqnameAssignment_6
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getOracleAccess().getReqnameReqIdParserRuleCall_6_0()); }
		ruleReqId
		{ after(grammarAccess.getOracleAccess().getReqnameReqIdParserRuleCall_6_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__SigndefAssignment_8
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getOracleAccess().getSigndefSignalsdefinitionParserRuleCall_8_0()); }
		ruleSignalsdefinition
		{ after(grammarAccess.getOracleAccess().getSigndefSignalsdefinitionParserRuleCall_8_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__ConstantDefinitionsAssignment_9
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getOracleAccess().getConstantDefinitionsConstantsDefinitionParserRuleCall_9_0()); }
		ruleConstantsDefinition
		{ after(grammarAccess.getOracleAccess().getConstantDefinitionsConstantsDefinitionParserRuleCall_9_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Oracle__RequirementAssignment_10
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getOracleAccess().getRequirementRequirementParserRuleCall_10_0()); }
		ruleRequirement
		{ after(grammarAccess.getOracleAccess().getRequirementRequirementParserRuleCall_10_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Requirement__FormulaAssignment_4
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getRequirementAccess().getFormulaFormulaParserRuleCall_4_0()); }
		ruleformula
		{ after(grammarAccess.getRequirementAccess().getFormulaFormulaParserRuleCall_4_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signalsdefinition__SignalsAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSignalsdefinitionAccess().getSignalsSignalIDParserRuleCall_1_0()); }
		ruleSignalID
		{ after(grammarAccess.getSignalsdefinitionAccess().getSignalsSignalIDParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signalsdefinition__SignalsAssignment_2_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSignalsdefinitionAccess().getSignalsSignalIDParserRuleCall_2_1_0()); }
		ruleSignalID
		{ after(grammarAccess.getSignalsdefinitionAccess().getSignalsSignalIDParserRuleCall_2_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantsDefinition__ConstantsAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getConstantsDefinitionAccess().getConstantsConstantDefinitionParserRuleCall_1_0()); }
		ruleConstantDefinition
		{ after(grammarAccess.getConstantsDefinitionAccess().getConstantsConstantDefinitionParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantsDefinition__ConstantsAssignment_2_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getConstantsDefinitionAccess().getConstantsConstantDefinitionParserRuleCall_2_1_0()); }
		ruleConstantDefinition
		{ after(grammarAccess.getConstantsDefinitionAccess().getConstantsConstantDefinitionParserRuleCall_2_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantDefinition__ConstantidAssignment_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getConstantDefinitionAccess().getConstantidConstantIdParserRuleCall_0_0()); }
		ruleConstantId
		{ after(grammarAccess.getConstantDefinitionAccess().getConstantidConstantIdParserRuleCall_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantDefinition__ValueAssignment_3
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getConstantDefinitionAccess().getValueNumberParserRuleCall_3_0()); }
		rulenumber
		{ after(grammarAccess.getConstantDefinitionAccess().getValueNumberParserRuleCall_3_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__SignalID__NameAssignment
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSignalIDAccess().getNameIDTerminalRuleCall_0()); }
		RULE_ID
		{ after(grammarAccess.getSignalIDAccess().getNameIDTerminalRuleCall_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__ConstantId__NameAssignment
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getConstantIdAccess().getNameIDTerminalRuleCall_0()); }
		RULE_ID
		{ after(grammarAccess.getConstantIdAccess().getNameIDTerminalRuleCall_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__ForAllformula__BoundAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getForAllformulaAccess().getBoundBoundtermParserRuleCall_1_0()); }
		ruleboundterm
		{ after(grammarAccess.getForAllformulaAccess().getBoundBoundtermParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__ForAllformula__ForallchildAssignment_4
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getForAllformulaAccess().getForallchildFormulaParserRuleCall_4_0()); }
		ruleformula
		{ after(grammarAccess.getForAllformulaAccess().getForallchildFormulaParserRuleCall_4_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Existsformula__BoundAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExistsformulaAccess().getBoundBoundtermParserRuleCall_1_0()); }
		ruleboundterm
		{ after(grammarAccess.getExistsformulaAccess().getBoundBoundtermParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Existsformula__ExistschildAssignment_4
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExistsformulaAccess().getExistschildFormulaParserRuleCall_4_0()); }
		ruleformula
		{ after(grammarAccess.getExistsformulaAccess().getExistschildFormulaParserRuleCall_4_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Tvariable__NameAssignment
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTvariableAccess().getNameIDTerminalRuleCall_0()); }
		RULE_ID
		{ after(grammarAccess.getTvariableAccess().getNameIDTerminalRuleCall_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Negationformula__NegationchildAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getNegationformulaAccess().getNegationchildFormulaParserRuleCall_1_0()); }
		ruleformula
		{ after(grammarAccess.getNegationformulaAccess().getNegationchildFormulaParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Formula__FAssignment_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getFormulaAccess().getFBasicformulaeParserRuleCall_0_0()); }
		rulebasicformulae
		{ after(grammarAccess.getFormulaAccess().getFBasicformulaeParserRuleCall_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Formula__FAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getFormulaAccess().getFFormulabParserRuleCall_1_0()); }
		ruleformulab
		{ after(grammarAccess.getFormulaAccess().getFFormulabParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulab__AAssignment_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getFormulabAccess().getATermParserRuleCall_0_0()); }
		ruleterm
		{ after(grammarAccess.getFormulabAccess().getATermParserRuleCall_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulab__TAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getFormulabAccess().getTFormulabprimeParserRuleCall_1_0()); }
		ruleformulabprime
		{ after(grammarAccess.getFormulabAccess().getTFormulabprimeParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulabprime__OpAssignment_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getFormulabprimeAccess().getOpAlternatives_0_0()); }
		(rule__Formulabprime__OpAlternatives_0_0)
		{ after(grammarAccess.getFormulabprimeAccess().getOpAlternatives_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulabprime__T2Assignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getFormulabprimeAccess().getT2TermParserRuleCall_1_0()); }
		ruleterm
		{ after(grammarAccess.getFormulabprimeAccess().getT2TermParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Formulabprime__FAssignment_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getFormulabprimeAccess().getFFormulabprimeParserRuleCall_2_0()); }
		ruleformulabprime
		{ after(grammarAccess.getFormulabprimeAccess().getFFormulabprimeParserRuleCall_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Term__AAssignment_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTermAccess().getAAtomParserRuleCall_0_0()); }
		ruleatom
		{ after(grammarAccess.getTermAccess().getAAtomParserRuleCall_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Term__TAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTermAccess().getTTermprimeParserRuleCall_1_0()); }
		ruletermprime
		{ after(grammarAccess.getTermAccess().getTTermprimeParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Termprime__OpAssignment_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTermprimeAccess().getOpAndKeyword_0_0()); }
		(
			{ before(grammarAccess.getTermprimeAccess().getOpAndKeyword_0_0()); }
			'and'
			{ after(grammarAccess.getTermprimeAccess().getOpAndKeyword_0_0()); }
		)
		{ after(grammarAccess.getTermprimeAccess().getOpAndKeyword_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Termprime__TAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTermprimeAccess().getTTermParserRuleCall_1_0()); }
		ruleterm
		{ after(grammarAccess.getTermprimeAccess().getTTermParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Termprime__F1Assignment_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTermprimeAccess().getF1TermprimeParserRuleCall_2_0()); }
		ruletermprime
		{ after(grammarAccess.getTermprimeAccess().getF1TermprimeParserRuleCall_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expression__ExpbAssignment
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionAccess().getExpbExpressionbParserRuleCall_0()); }
		ruleexpressionb
		{ after(grammarAccess.getExpressionAccess().getExpbExpressionbParserRuleCall_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__TermAssignment_0_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionbAccess().getTermExpressiontermParserRuleCall_0_0_0()); }
		ruleexpressionterm
		{ after(grammarAccess.getExpressionbAccess().getTermExpressiontermParserRuleCall_0_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__ExpprimeAssignment_0_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionbAccess().getExpprimeExpressionprimeParserRuleCall_0_1_0()); }
		ruleexpressionprime
		{ after(grammarAccess.getExpressionbAccess().getExpprimeExpressionprimeParserRuleCall_0_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__TermAssignment_1_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionbAccess().getTermExpressiontermParserRuleCall_1_1_0()); }
		ruleexpressionterm
		{ after(grammarAccess.getExpressionbAccess().getTermExpressiontermParserRuleCall_1_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionb__ExpprimeAssignment_1_3
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionbAccess().getExpprimeExpressionprimeParserRuleCall_1_3_0()); }
		ruleexpressionprime
		{ after(grammarAccess.getExpressionbAccess().getExpprimeExpressionprimeParserRuleCall_1_3_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionprime__OpAssignment_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionprimeAccess().getOpAlternatives_0_0()); }
		(rule__Expressionprime__OpAlternatives_0_0)
		{ after(grammarAccess.getExpressionprimeAccess().getOpAlternatives_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionprime__T2Assignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionprimeAccess().getT2ExpressiontermParserRuleCall_1_0()); }
		ruleexpressionterm
		{ after(grammarAccess.getExpressionprimeAccess().getT2ExpressiontermParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionprime__FAssignment_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionprimeAccess().getFExpressionprimeParserRuleCall_2_0()); }
		ruleexpressionprime
		{ after(grammarAccess.getExpressionprimeAccess().getFExpressionprimeParserRuleCall_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionterm__TermAssignment_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressiontermAccess().getTermAlternatives_0_0()); }
		(rule__Expressionterm__TermAlternatives_0_0)
		{ after(grammarAccess.getExpressiontermAccess().getTermAlternatives_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressionterm__ExpprimeAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressiontermAccess().getExpprimeExpressiontermprimeParserRuleCall_1_0()); }
		ruleexpressiontermprime
		{ after(grammarAccess.getExpressiontermAccess().getExpprimeExpressiontermprimeParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressiontermprime__OpAssignment_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressiontermprimeAccess().getOpAlternatives_0_0()); }
		(rule__Expressiontermprime__OpAlternatives_0_0)
		{ after(grammarAccess.getExpressiontermprimeAccess().getOpAlternatives_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressiontermprime__T2Assignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressiontermprimeAccess().getT2ExpressiontermParserRuleCall_1_0()); }
		ruleexpressionterm
		{ after(grammarAccess.getExpressiontermprimeAccess().getT2ExpressiontermParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Expressiontermprime__FAssignment_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressiontermprimeAccess().getFExpressiontermprimeParserRuleCall_2_0()); }
		ruleexpressiontermprime
		{ after(grammarAccess.getExpressiontermprimeAccess().getFExpressiontermprimeParserRuleCall_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__ExpAssignment_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionAtomAccess().getExpSignalParserRuleCall_0_0()); }
		ruleSignal
		{ after(grammarAccess.getExpressionAtomAccess().getExpSignalParserRuleCall_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__ExpAssignment_1_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionAtomAccess().getExpExpressionParserRuleCall_1_1_0()); }
		ruleexpression
		{ after(grammarAccess.getExpressionAtomAccess().getExpExpressionParserRuleCall_1_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__OpAssignment_2_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionAtomAccess().getOpSIGNParserRuleCall_2_0_0()); }
		ruleSIGN
		{ after(grammarAccess.getExpressionAtomAccess().getOpSIGNParserRuleCall_2_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__ExpAssignment_2_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionAtomAccess().getExpExpressionParserRuleCall_2_1_0()); }
		ruleexpression
		{ after(grammarAccess.getExpressionAtomAccess().getExpExpressionParserRuleCall_2_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__ExpressionAtom__ExpAssignment_3
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getExpressionAtomAccess().getExpValueParserRuleCall_3_0()); }
		rulevalue
		{ after(grammarAccess.getExpressionAtomAccess().getExpValueParserRuleCall_3_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicexpression__ExpAssignment_0_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBasicexpressionAccess().getExpBasicexpressionParserRuleCall_0_1_0()); }
		ruleBasicexpression
		{ after(grammarAccess.getBasicexpressionAccess().getExpBasicexpressionParserRuleCall_0_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicexpression__ExpAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBasicexpressionAccess().getExpAbsEXPParserRuleCall_1_0()); }
		ruleAbsEXP
		{ after(grammarAccess.getBasicexpressionAccess().getExpAbsEXPParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicexpression__ExpAssignment_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBasicexpressionAccess().getExpNormexpParserRuleCall_2_0()); }
		ruleNormexp
		{ after(grammarAccess.getBasicexpressionAccess().getExpNormexpParserRuleCall_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicexpression__ExpAssignment_3
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBasicexpressionAccess().getExpSinParserRuleCall_3_0()); }
		ruleSin
		{ after(grammarAccess.getBasicexpressionAccess().getExpSinParserRuleCall_3_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicexpression__ExpAssignment_4
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBasicexpressionAccess().getExpCosParserRuleCall_4_0()); }
		ruleCos
		{ after(grammarAccess.getBasicexpressionAccess().getExpCosParserRuleCall_4_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicexpression__ExpAssignment_5
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBasicexpressionAccess().getExpSqrtParserRuleCall_5_0()); }
		ruleSqrt
		{ after(grammarAccess.getBasicexpressionAccess().getExpSqrtParserRuleCall_5_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicformulae__FAssignment_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBasicformulaeAccess().getFNegationformulaParserRuleCall_0_0()); }
		rulenegationformula
		{ after(grammarAccess.getBasicformulaeAccess().getFNegationformulaParserRuleCall_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicformulae__FAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBasicformulaeAccess().getFForAllformulaParserRuleCall_1_0()); }
		ruleForAllformula
		{ after(grammarAccess.getBasicformulaeAccess().getFForAllformulaParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Basicformulae__FAssignment_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBasicformulaeAccess().getFExistsformulaParserRuleCall_2_0()); }
		ruleExistsformula
		{ after(grammarAccess.getBasicformulaeAccess().getFExistsformulaParserRuleCall_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__RefAssignment_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBoundtermAccess().getRefTvariableParserRuleCall_0_0()); }
		ruleTvariable
		{ after(grammarAccess.getBoundtermAccess().getRefTvariableParserRuleCall_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__LAssignment_2_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBoundtermAccess().getLLSQUAREParserRuleCall_2_0_0()); }
		ruleLSQUARE
		{ after(grammarAccess.getBoundtermAccess().getLLSQUAREParserRuleCall_2_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__LAssignment_2_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBoundtermAccess().getLLPARENParserRuleCall_2_1_0()); }
		ruleLPAREN
		{ after(grammarAccess.getBoundtermAccess().getLLPARENParserRuleCall_2_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__LeftboundAssignment_3
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBoundtermAccess().getLeftboundTimedtermParserRuleCall_3_0()); }
		ruletimedterm
		{ after(grammarAccess.getBoundtermAccess().getLeftboundTimedtermParserRuleCall_3_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__RightboundAssignment_5
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBoundtermAccess().getRightboundTimedtermParserRuleCall_5_0()); }
		ruletimedterm
		{ after(grammarAccess.getBoundtermAccess().getRightboundTimedtermParserRuleCall_5_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__RAssignment_6_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBoundtermAccess().getRRSQUAREParserRuleCall_6_0_0()); }
		ruleRSQUARE
		{ after(grammarAccess.getBoundtermAccess().getRRSQUAREParserRuleCall_6_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Boundterm__RAssignment_6_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getBoundtermAccess().getRRPARENParserRuleCall_6_1_0()); }
		ruleRPAREN
		{ after(grammarAccess.getBoundtermAccess().getRRPARENParserRuleCall_6_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__InfAssignment_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTimedtermAccess().getInfINFParserRuleCall_0_0()); }
		ruleINF
		{ after(grammarAccess.getTimedtermAccess().getInfINFParserRuleCall_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__NumberAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTimedtermAccess().getNumberNumberParserRuleCall_1_0()); }
		rulenumber
		{ after(grammarAccess.getTimedtermAccess().getNumberNumberParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__RefAssignment_2_0_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTimedtermAccess().getRefConstantIdCrossReference_2_0_0_0()); }
		(
			{ before(grammarAccess.getTimedtermAccess().getRefConstantIdIDTerminalRuleCall_2_0_0_0_1()); }
			RULE_ID
			{ after(grammarAccess.getTimedtermAccess().getRefConstantIdIDTerminalRuleCall_2_0_0_0_1()); }
		)
		{ after(grammarAccess.getTimedtermAccess().getRefConstantIdCrossReference_2_0_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__RefAssignment_2_0_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTimedtermAccess().getRefTvariableCrossReference_2_0_1_0()); }
		(
			{ before(grammarAccess.getTimedtermAccess().getRefTvariableIDTerminalRuleCall_2_0_1_0_1()); }
			RULE_ID
			{ after(grammarAccess.getTimedtermAccess().getRefTvariableIDTerminalRuleCall_2_0_1_0_1()); }
		)
		{ after(grammarAccess.getTimedtermAccess().getRefTvariableCrossReference_2_0_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__OpAssignment_2_1_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTimedtermAccess().getOpAlternatives_2_1_0_0()); }
		(rule__Timedterm__OpAlternatives_2_1_0_0)
		{ after(grammarAccess.getTimedtermAccess().getOpAlternatives_2_1_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Timedterm__ValueAssignment_2_1_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getTimedtermAccess().getValueValueParserRuleCall_2_1_1_0()); }
		rulevalue
		{ after(grammarAccess.getTimedtermAccess().getValueValueParserRuleCall_2_1_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__FAssignment_0_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getAtomAccess().getFFormulaParserRuleCall_0_1_0()); }
		ruleformula
		{ after(grammarAccess.getAtomAccess().getFFormulaParserRuleCall_0_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__S1Assignment_1_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getAtomAccess().getS1ExpressionParserRuleCall_1_1_0()); }
		ruleexpression
		{ after(grammarAccess.getAtomAccess().getS1ExpressionParserRuleCall_1_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__OpAssignment_1_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getAtomAccess().getOpRELOPParserRuleCall_1_2_0()); }
		ruleRELOP
		{ after(grammarAccess.getAtomAccess().getOpRELOPParserRuleCall_1_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Atom__S2Assignment_1_3
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getAtomAccess().getS2ExpressionParserRuleCall_1_3_0()); }
		ruleexpression
		{ after(grammarAccess.getAtomAccess().getS2ExpressionParserRuleCall_1_3_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Value__ExpAssignment_0_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getValueAccess().getExpExpressionParserRuleCall_0_1_0()); }
		ruleexpression
		{ after(grammarAccess.getValueAccess().getExpExpressionParserRuleCall_0_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Value__NumberAssignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getValueAccess().getNumberNumberParserRuleCall_1_0()); }
		rulenumber
		{ after(grammarAccess.getValueAccess().getNumberNumberParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Value__RefAssignment_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getValueAccess().getRefConstantIdCrossReference_2_0()); }
		(
			{ before(grammarAccess.getValueAccess().getRefConstantIdIDTerminalRuleCall_2_0_1()); }
			RULE_ID
			{ after(grammarAccess.getValueAccess().getRefConstantIdIDTerminalRuleCall_2_0_1()); }
		)
		{ after(grammarAccess.getValueAccess().getRefConstantIdCrossReference_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Value__FloatAssignment_3
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getValueAccess().getFloatFLOATParserRuleCall_3_0()); }
		ruleFLOAT
		{ after(grammarAccess.getValueAccess().getFloatFLOATParserRuleCall_3_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__SignalidAssignment_0_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSignalAccess().getSignalidSignalIDCrossReference_0_0_0()); }
		(
			{ before(grammarAccess.getSignalAccess().getSignalidSignalIDIDTerminalRuleCall_0_0_0_1()); }
			RULE_ID
			{ after(grammarAccess.getSignalAccess().getSignalidSignalIDIDTerminalRuleCall_0_0_0_1()); }
		)
		{ after(grammarAccess.getSignalAccess().getSignalidSignalIDCrossReference_0_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__TimdedtermAssignment_0_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSignalAccess().getTimdedtermTimedtermParserRuleCall_0_2_0()); }
		ruletimedterm
		{ after(grammarAccess.getSignalAccess().getTimdedtermTimedtermParserRuleCall_0_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__SignalidAssignment_1_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSignalAccess().getSignalidSignalIDCrossReference_1_0_0()); }
		(
			{ before(grammarAccess.getSignalAccess().getSignalidSignalIDIDTerminalRuleCall_1_0_0_1()); }
			RULE_ID
			{ after(grammarAccess.getSignalAccess().getSignalidSignalIDIDTerminalRuleCall_1_0_0_1()); }
		)
		{ after(grammarAccess.getSignalAccess().getSignalidSignalIDCrossReference_1_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Indx1Assignment_1_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSignalAccess().getIndx1NumberParserRuleCall_1_2_0()); }
		rulenumber
		{ after(grammarAccess.getSignalAccess().getIndx1NumberParserRuleCall_1_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__TimdedtermAssignment_1_5
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSignalAccess().getTimdedtermTimedtermParserRuleCall_1_5_0()); }
		ruletimedterm
		{ after(grammarAccess.getSignalAccess().getTimdedtermTimedtermParserRuleCall_1_5_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__SignalidAssignment_2_0
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSignalAccess().getSignalidSignalIDCrossReference_2_0_0()); }
		(
			{ before(grammarAccess.getSignalAccess().getSignalidSignalIDIDTerminalRuleCall_2_0_0_1()); }
			RULE_ID
			{ after(grammarAccess.getSignalAccess().getSignalidSignalIDIDTerminalRuleCall_2_0_0_1()); }
		)
		{ after(grammarAccess.getSignalAccess().getSignalidSignalIDCrossReference_2_0_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Indx1Assignment_2_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSignalAccess().getIndx1NumberParserRuleCall_2_2_0()); }
		rulenumber
		{ after(grammarAccess.getSignalAccess().getIndx1NumberParserRuleCall_2_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__Indx2Assignment_2_5
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSignalAccess().getIndx2NumberParserRuleCall_2_5_0()); }
		rulenumber
		{ after(grammarAccess.getSignalAccess().getIndx2NumberParserRuleCall_2_5_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Signal__TimdedtermAssignment_2_8
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSignalAccess().getTimdedtermTimedtermParserRuleCall_2_8_0()); }
		ruletimedterm
		{ after(grammarAccess.getSignalAccess().getTimdedtermTimedtermParserRuleCall_2_8_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__AbsEXP__Exp1Assignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getAbsEXPAccess().getExp1ExpressionParserRuleCall_1_0()); }
		ruleexpression
		{ after(grammarAccess.getAbsEXPAccess().getExp1ExpressionParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Normexp__Exp1Assignment_1
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getNormexpAccess().getExp1ExpressionParserRuleCall_1_0()); }
		ruleexpression
		{ after(grammarAccess.getNormexpAccess().getExp1ExpressionParserRuleCall_1_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Sin__Exp1Assignment_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSinAccess().getExp1ExpressionParserRuleCall_2_0()); }
		ruleexpression
		{ after(grammarAccess.getSinAccess().getExp1ExpressionParserRuleCall_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Cos__Exp1Assignment_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getCosAccess().getExp1ExpressionParserRuleCall_2_0()); }
		ruleexpression
		{ after(grammarAccess.getCosAccess().getExp1ExpressionParserRuleCall_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

rule__Sqrt__Exp1Assignment_2
	@init {
		int stackSize = keepStackSize();
	}
:
	(
		{ before(grammarAccess.getSqrtAccess().getExp1ExpressionParserRuleCall_2_0()); }
		ruleexpression
		{ after(grammarAccess.getSqrtAccess().getExp1ExpressionParserRuleCall_2_0()); }
	)
;
finally {
	restoreStackSize(stackSize);
}

RULE_DESCRIPTION : '"' ( options {greedy=false;} : . )*'"';

RULE_WS : (' '|'\t'|'\r'|'\n');

RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';

RULE_DIGIT : '0'..'9';

RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;

RULE_INT : ('0'..'9')+;

RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');

RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;

RULE_ANY_OTHER : .;
