
Theorems about Types
By Richard Weyhrauch
This note is called:
[THE-CONTEXT--TYPE]
The notation used in this note is described in
[NOTATION]
Under development
Preface
This is a theory about mental processes and mental images.
Our thesis is that the only things in a head are mental images of things
and we propose to represent mental images in our 'artifical' head as IBML
types.
TYPE?
(FORALL obj TYPE?(obj))
(FORALL obj (XOR
(ATOMIC-DATA? obj)
(SET-ODDATA? obj)
(TREE-TYPE? obj)
))
(FORALL obj (IFF (DATA? obj) (XOR
(TAG? obj)
(CHARACYER? obj)
...
)) )
(FORALL tag (EQUAL (type-get-val tag |type|) '[tag])
(TYPE? [attribute-name])
(SUBTYPE [attribute-name] [symbol])
(ATTRIBUTE-NAME? |type|)
SUBTYPE
EXAMPLE
ISIN
[top] our mental image of the collection of everything
(TYPE? [top])
(ISIN [top] [top])
(IFF (PROPER-TYPE x) (NOT x [top])
(FORALL (a [attribute-name]) (type-has-attribute-name [top] a))
(FORALL (a [attribute-name]) (EQUAL (type-get-val [top] a) [top])
(EQUAL (type-get-val [top] |type|) |top|)
attributes-of(type)=(list-of [attribute-name])
This list has no duplicates
(TYPE-HAS-ATTRIBUTE [type] [attribute-name])
;; type seperation
(FORALL x (EXIST T) (forall y ((IFF (ISIN y T) (AND (ISIN y x) (P x))
where y is not free in P
The bound variables of P range over proper types
Theorems about [top]
(FORALL x (TYPE? x)
(FORALL x (SUBTYPE x [type])
(SUBTYPE [top] [top])
if t1 is a proper subset of t then
t2=t/t1 is a type!!!
ie relative complement is OK!!!!!
because t2 cant be empty. ie t1 is a proper subtype t <==?
(exists example of t) that is not in t1
An example of a type is any [object] that has all the attributes of the type an of its parent that is required.
All types, except [top], have at least one attribute and one example. (In fact all types have arbitrari;y many examples)
(|type| [foo] |subtype| [top]
(|name| (*type* @ [string] %required)
)
(attributes-of [foo]) = {|name|)
(parent-of [foo] = [top]
; we have multiple inheritance so parent-of
; is actually a function of this specific [type-def]
; in Carroll this is called its genus
; in his definition Carroll refers to a specific 'mental act'
; this leaves the possibility for multiple inheritence mute
; his mental act is equivalent to using a specific [type-def]
; to determine the type.
; of the [type-def] above of [foo]
; [foo] is the species
; [top] is the genus
; (|name| (*type* @ [string]) is an attribute
; ((|name| (*type* @ [string])) is its differentia
; for us
; [foo] is a [type-name]
; [top] is the [type-name] of [foo]'s parent
; |name] is an [attribute-name]
; [string] is the value of the attribute |name|
; thought of as a type not as data
; (attributes-of [foo]) = (|name|)
; slightly misnamed
; (*EXA* (|foo| . (*finite* |aset|
; (|name| (*data* @ "Fred"))
; )
is the [type-def] of an example of a [foo]
; whose |name| is "Fred"
; whose type is called |foo|
; the thing named above as "fred" is a species of [foo]
|