abstract
class
LogicalC extends AnyRef
Instance Constructors
-
new
LogicalC(name: String)
Type Members
-
abstract
type
MatchResult
Abstract Value Members
-
abstract
def
matchType(exptype: Ty): MatchResult
-
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
def
+(other: String): String
-
def
->[B](y: B): (LogicalC, B)
-
final
def
==(arg0: Any): Boolean
-
final
def
asInstanceOf[T0]: T0
-
def
clone(): AnyRef
-
-
-
-
-
-
-
def
finalize(): Unit
-
def
formatted(fmtstr: String): String
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
final
def
isInstanceOf[T0]: Boolean
-
val
name: String
-
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toString(): String
-
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
-
def
→[B](y: B): (LogicalC, B)
Inherited by implicit conversion any2stringadd from
LogicalC to any2stringadd[LogicalC]
Inherited by implicit conversion StringFormat from
LogicalC to StringFormat[LogicalC]
Inherited by implicit conversion ArrowAssoc from
LogicalC to ArrowAssoc[LogicalC]
Helper class for logical constants.
The logical constans are the propositional connectives, the quantifiers, bottom, top, and the equality constant. A logical constant is different from an expression consisting of only this logical constant, as the expression is an object of type LambdaExpression and needs to have a definite type.
A logical constant consists of a name (e.g. "∀"), and a set of possible types, (e.g. (Ti->To)->To, ((Ti->Ti)->To)->To, ...). Subclasses need to implement the function matchType, which matches these possible types. This way we can handle the parametric types of the quantifiers.