Adaptive Logic
Use this when
-
Not worth investigating the problem.
-
There is a clear Restart / Reset option.
-
You can articulate the difference from the ideal world and the real world.
Basic plan:
-
Specify your ideal world as a logic U, the "Upper Logic"
-
Identify your actual world as a logic L, the "Lower Logic"
-
Run a simulation of U inside of L.
-
If U runs into trouble, switch down the L to sort things out.
Adapting Rule:
\(\Delta\) set of conditions
\[ \Gamma \vdash_{Upper} P \quad \Longleftrightarrow\quad \Gamma \vdash_{Lower} P \vee Alt(\Delta)\]
Example.
-
\(P\) = "The application will save unsaved work when it closes."
-
\(\Delta = \{ \text{System is not forcing exit} \}\)
-
\(Alt(\Delta)=\) "Close application; don't check on unsaved work."
The Design:
-
A "Dialog Box" is a window that grabs the focus of an application. You must answer its question before anything else in the program can operate.
-
You You open an application close an application.
-
You application ask: "Do you want to save unsaved work?"
- You say yes, which aborts the closure.
Disjunctive Syllogism:
\[\begin{array}{l} (\neg P) \vee Q \\ P \\ \hline Q \end{array}\]
P = Close the application
Q = Save the file
Example Configuration
-
I want to pretend mistakes don't happen.
-
But if they do I want to back of whatever depended on that assumption
-
What is a difference?
\[\begin{array}{l} P \\ (\neg P)\vee Q \\ \hline (P\vee (\neg P))\wedge Q\end{array}\]
Example Configuration
-
P = "You closed the application."
-
Q = "You aI want to pretend mistakes don't happen.
-
But if they do I want to back of whatever depended on that assumption
-
What is a difference?
\[\begin{array}{l} P \\ (\neg P)\vee Q \\ \hline (P\vee (\neg P))\wedge Q\end{array}\]
Example Configuration
You have a program to edit images and you use it to load an image you downloaded from the web. As the file opens program detects it needs to convert the format and it opens a window asking you to convert the type. At the same time the program also opens a window asking if you want a tour of the new features. You click Skip Tour, but nothing happens. You then select JPEG for image type, and nothing happens. The program froze.
Example Configuration
If popup, Then must answer first.
Problem. Two popups appear to us at the same time and we choose the wrong one to click on first. Now that popup has focus and trys to work but it immediately runs into the second popup window and is forced to wait. We have a classic Dead LOCK
Window Grab Focus, must have a program to edit images and you use it to load an image you downloaded from the web. As the file opens program detects it needs to convert the format and it opens a window asking you to convert the type. At the same time the program also opens a window asking if you want a tour of the new features. You click Skip Tour, but nothing happens. You then select JPEG for image type, and nothing happens. The program froze.
Example Configuration
You have a program to edit images and you use it to load an image you downloaded from the web. As the file opens program detects it needs to convert the format and it opens a window asking you to convert the type. At the same time the program also opens a window asking if you want a tour of the new features. You click Skip Tour, but nothing happens. You then select JPEG for image type, and nothing happens. The program froze.
Adaptive Logic
By James Wilson
Adaptive Logic
- 58