<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.quotation, li.quotation, div.quotation
        {mso-style-name:quotation;
        mso-style-link:"quotation Char";
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Times New Roman",serif;
        font-weight:bold;
        font-style:italic;}
span.quotationChar
        {mso-style-name:"quotation Char";
        mso-style-link:quotation;
        font-family:"Times New Roman",serif;
        font-weight:bold;
        font-style:italic;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
span.EmailStyle24
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1027" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink=purple><div class=WordSection1><p class=MsoNormal>Thanks, Marcus, <o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Am I correct that all of your examples fall with in this frame;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter" />
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0" />
<v:f eqn="sum @0 1 0" />
<v:f eqn="sum 0 0 @1" />
<v:f eqn="prod @2 1 2" />
<v:f eqn="prod @3 21600 pixelWidth" />
<v:f eqn="prod @3 21600 pixelHeight" />
<v:f eqn="sum @0 0 1" />
<v:f eqn="prod @6 1 2" />
<v:f eqn="prod @7 21600 pixelWidth" />
<v:f eqn="sum @8 21600 0" />
<v:f eqn="prod @7 21600 pixelHeight" />
<v:f eqn="sum @10 21600 0" />
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" />
<o:lock v:ext="edit" aspectratio="t" />
</v:shapetype><v:shape id="Picture_x0020_1" o:spid="_x0000_s1026" type="#_x0000_t75" style='position:absolute;margin-left:0;margin-top:0;width:303.5pt;height:71pt;z-index:251658240;visibility:visible;mso-wrap-style:square;mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;mso-wrap-distance-bottom:0;mso-position-horizontal:left;mso-position-horizontal-relative:text;mso-position-vertical:top;mso-position-vertical-relative:text'>
<v:imagedata src="cid:image001.png@01D5D37E.90090D30" o:title="" />
<w:wrap type="square"/>
</v:shape><![endif]--><![if !vml]><img width=405 height=95 style='width:4.2152in;height:.9861in' src="cid:image003.png@01D5D37E.ED251C70" align=left hspace=12 v:shapes="Picture_x0020_1"><![endif]><br clear=all><o:p></o:p></p><p class=MsoNormal>I keep expecting you guys to scream at me, \u201cOf course, you idiot, self-perception is partial and subject to error!  HTF could it be otherwise?\u201d   I would love that.  I would record it and put it on loop for half my colleagues in psychology departments around the world.  <o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Nick <o:p></o:p></p><div><p class=MsoNormal>Nicholas Thompson<o:p></o:p></p><p class=MsoNormal>Emeritus Professor of Ethology and Psychology<o:p></o:p></p><p class=MsoNormal>Clark University<o:p></o:p></p><p class=MsoNormal><a href="mailto:ThompNickSon2@gmail.com"><span style='color:#0563C1'>ThompNickSon2@gmail.com</span></a><o:p></o:p></p><p class=MsoNormal><a href="https://wordpress.clarku.edu/nthompson/"><span style='color:#0563C1'>https://wordpress.clarku.edu/nthompson/</span></a><o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From:</b> Friam &lt;friam-bounces@redfish.com&gt; <b>On Behalf Of </b>Marcus Daniels<br><b>Sent:</b> Saturday, January 25, 2020 12:16 PM<br><b>To:</b> The Friday Morning Applied Complexity Coffee Group &lt;friam@redfish.com&gt;<br><b>Subject:</b> Re: [FRIAM] Abduction and Introspection<o:p></o:p></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><b><span style='font-size:12.0pt'>Nick writes:<o:p></o:p></span></b></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=quotation>&nbsp;As software engineers, what conditions would a program have to fulfill to say that a computer was monitoring \u201citself<o:p></o:p></p><p class=quotation style='margin-left:0in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><o:p>&nbsp;</o:p></span></p><p class=quotation style='margin-left:0in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;font-weight:normal;font-style:normal'>It is common for codes that calculate things to periodically test invariants that should hold.&nbsp;&nbsp; For example, a physics code might test for conservation of mass or energy.&nbsp;&nbsp; A conversion between a data structure with one index scheme to another is often followed by a check to ensure the total number of records did not change, or if it did change that it changed by an expected amount.&nbsp;&nbsp; It is also possible, but less common, to write a code so that proofs are constructed by virtue of the code being compliable against a set of types.&nbsp;&nbsp; The types describe all of the conditions that must hold regarding the behavior of a function.&nbsp;&nbsp;&nbsp; In that case it is not necessary to detect if something goes haywire at runtime because it is simply not possible for something to go haywire.&nbsp; (A computer could still miscalculate due to a cosmic ray, or some other physical interruption, but assuming that did not happen a complete proof-carrying code would not fail within its specifications.)<o:p></o:p></span></p><p class=quotation style='margin-left:0in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;font-weight:normal;font-style:normal'>A weaker form of self-monitoring is to periodically check for memory or disk usage, and to raise an alarm if they are unexpectedly high or low.&nbsp; &nbsp;Such an alarm might trigger cleanups of old results, otherwise kept around for convenience.&nbsp; <o:p></o:p></span></p><p class=quotation style='margin-left:0in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;font-weight:normal;font-style:normal'><o:p>&nbsp;</o:p></span></p><p class=quotation style='margin-left:0in'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;font-weight:normal;font-style:normal'>Marcus<o:p></o:p></span></p><p class=MsoPlainText><o:p>&nbsp;</o:p></p></div></body></html>