Disbelief
It can be valuable to run Brainhat in a mode where it does not automatically believe everything it is told. This gives Brainhat the ability to evaluate knowledge against its own belief system. Let's start with an example where Brainhat believes everything it is told:
$ ./run
make: 'data' is up to date.
Initializing
>> i like you
You like Me.
>> debug xspeak 1
You say You like Me. You like Me.
>> do i like you?
yes. You like Me.
>> bye
goodbye!
You can see that we told Brainhat that we liked it/him/her. Then we dropped into debug briefly to list the context. We find two CCs: "you say you like me" and "you like me."
The Brainhat state flag "verbatim" controls whether Brainhat believes what it is told. By default, it is set. We can turn it off and try this again:
$ ./run
make: 'data' is up to date.
Initializing
>> break clear verbatim
>> i like you
You like Me.
>> debug xspeak 1
You say You like Me.
>> do i like you
maybe. I do not know.
>> do i say that i like you?
yes. You say You like Me.
>> bye
goodbye!
Brainhat records that I said that I like it/him/her, but does not record that it is true. Next, we look at an example of how suspension of belief can interact with explicit inferences to create side-effects. Brainhat disbelieves when we tell it something/anything is blue or not blue:
$ ./run
make: 'data' is up to date.
Initializing
>> break clear verbatim
>> if i say a thing is not blue then a thing is blue.
if You say a thing is not blue then a thing is blue.
>> if i say a thing is blue then a thing is red.
if You say a thing is blue then a thing is red.
>> the sky is blue
the sky is blue. the sky is red.
>> why
the sky is red because You say the sky is blue.
>> the water is not blue
the water is not blue. the water is blue.
>> why
the water is blue because You say the water is not blue.
>> bye
goodbye!