Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
<<importTiddlers>>
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<!--{{{-->
<div class='header' role='banner' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' role='navigation' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' role='navigation' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' role='complementary' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea' role='main'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected {color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60);}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0 3px 0 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='toolbar' role='navigation' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
Victor Porton's math problems (about Algebraic General Topology, that is theory of funcoids and reloids and generalizations thereof).
/%

Hello,

If you choose to change this GettingStarted tiddler, you may wish to add the following to your new content if you expect you space to be included:

<<<
----
Hello,
''This ~GettingStarted tiddler has been customized.''
If you want to see the original system tiddler just click the following link: GettingStarted@system-info at system-info.
<<<
%/

Welcome to your brand new [[TiddlySpace|http://docs.tiddlyspace.com/TiddlySpace]].

You're almost ready to go, there are just a couple of things left to do.

!Customise your space
Go to [[SpaceSettings]] to finish customising  your space. When you're done, come back here (just scroll up). Don't worry though, this will still be open when you've finished.

!Further Customisation

For advanced options, the [[ServerSettings]] tiddler is used to enable the following features:

#index: The value is the name of a tiddler that will be presented when loading the space.  For example, when set to {{{Hello}}} for the space hello.tiddlyspace.com, navigating to that URL will present the Hello tiddler. If there is no {{{Hello}}} you will get an error.
#editor: The name of an [[editor application|http://docs.tiddlyspace.com/Example%20Tiddler%20Editors]] to edit tiddlers with.  Applications come from [[included spaces|http://docs.tiddlyspace.com/How%20do%20I%20include%2Fexclude%20spaces%3F]]

//If you do not need or understand these features there is no need to create a ServerSettings tiddler.//

To edit these options: 

* click [[here|ServerSettings]] to open the [[ServerSettings]] tiddler
* click on the edit button (the pencil icon)
* add the options you wish to set 
* click on the save button (the tick icon).

An example [[ServerSettings]] tiddler:
{{{
index: HelloThere
editor: /edit#{tiddler}
}}}

The additional text after /edit allows a tiddler to be opened in edit mode e.g:
{{{http://hello.tiddlyspace.com/edit#MyTiddler}}}

!!See Also

* [[ServerSettings shadow tiddler|http://docs.tiddlyspace.com/ServerSettings%20shadow%20tiddler]]
* [[Choosing a non-TiddlyWiki Default Application for your Space|http://docs.tiddlyspace.com/Choosing%20a%20non-TiddlyWiki%20Default%20Application%20for%20your%20Space]]

!Finished customising?
You can [[Start writing]] some [[tiddlers|http://docs.tiddlyspace.com/Tiddler]].
If you're not done tweaking yet though, you can always [[Customise this space|SpaceSettings]] a bit more.

You can also [[access and read other tiddlers in various ways|http://docs.tiddlyspace.com/Viewing%20Tiddlers]].

!Administration
If you'd like to change your password or create another space, visit "Your Account" from the [[Universal Backstage|http://docs.tiddlyspace.com/UniversalBackstage]] (the blue dot in the upper right of the page). If you'd like to add a member or [[include a space|http://docs.tiddlyspace.com/How%20do%20I%20include%2Fexclude%20spaces%3F]] visit "This Space" from the [[Universal Backstage|http://docs.tiddlyspace.com/UniversalBackstage]].

You can have as many spaces as you like and each space can have as many members as you or your group need.

!Stuck?
If you're stuck, and would like some help, please visit the [[help|http://help.tiddlyspace.com]] space, which can point you in the right direction.
Victor Porton's math problems
[[Theory of singularities using generalized limits]]
Algebraic General Topology and related stuff
/*{{{*/
Background: #dcf2f8
Foreground: #061c22
PrimaryPale: #fafdfe
PrimaryLight: #c4e4ed
PrimaryMid: #489eb6
PrimaryDark: #4a5153
SecondaryPale: #fdfefa
SecondaryLight: #e4edc4
SecondaryMid: #a0b648
SecondaryDark: #51534a
TertiaryPale: #fefafd
TertiaryLight: #edc4e3
TertiaryMid: #b6489c
TertiaryDark: #534a51
Error: #f88
ColorPaletteParameters: HSL([193|59], [0.67|0.53|0.43|0.06],[0.31|0.5|0.85|0.99])
/*}}}*/
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
<!--{{{-->
<link href="/bags/portonmath_public/tiddlers.atom" rel="alternate"
	type="application/atom+xml" title="portonmath's public feed" />
<link rel="canonical" href="http://portonmath.tiddlyspace.com/" />
<!--}}}-->
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
This issue was raised in [[this blog post|http://portonmath.wordpress.com/2013/11/12/singularities-wiki/]]. You may comment on this blog post about your research and questions on the issues raised on this wiki.

Motto: ''Unravel the mystery of singularities.''

Warning: It is a rough draft and may contain errors.

In my book [[Algebraic General Topology. Volume 1|http://www.mathematics21.org/algebraic-general-topology.html]] I introduced the concept of [[generalized limit]]. (Generalized limit, unlike traditional limit, is defined for arbitrary values, even in singularity points.)

This wiki is intended to rigorously define (and research) singularities using values of generalized limits in equations. The trouble is that generalized limit is not a number (technically it is a set of funcoids) and can't be put into the same equation as a number without "type casting". It is possible to cast values (such as real numbers) into sets of funcoids to move them into the same "space" as generalized limits. But this does not work because there may be singularities "of level above" that is "singularities of singularities".

Thus there should be produced an infinite hierarchy of singularities: starting from numbers (such as real numbers), then plain singularities, then singularities of singularities, etc.

In [[this rough draft article|http://www.mathematics21.org/binaries/reduced-limit.pdf]] I attempted to introduce "metasingular numbers" to construct an infinite hierarchy of singularities and overcome this problem. The problem appeared to be difficult however.

So this wiki is to define metasingular numbers exactly and construct the infinite hierarchy of singularities.

[[The overall idea]]
> [[Attempted ways to define singularity level above]]
>> [[Using plain funcoids]]
>>> [[Singularities funcoids: some special cases]]
>>>> [[Singularities funcoids: special cases proof attempts]]
>> [[Using generalized funcoids]]
>>> [[Galufuncoids]]
>>> [[Functional galufuncoids]]
>>> [[More on galufuncoids]]
> [[Functions with meta-singular numbers as arguments]]
>> [[On differential equations]]
>>> [[Special case of general relativity]]
> [[Cheap way]]
!Summary
This tiddler contains some basic $\LaTeX$ macros which are useful for writing Analytic Topology.  Documentation can be found [[here|BasicMacros Documentation]].

!Version
version: 1.0.4

1.0: (2011-04-15) Major release.
1.0.1: (2011-04-16) Bugfix. {{{#1}}} was added to the definition of {{{\closure}}}.
1.0.2: (2011-04-16) Command name change.  The command {{{\blackboard}}} was added (to the supplemental list).  {{{\blackBoard}}} is kept for backwards compatability.
1.0.3: (2011-04-17) Command name added.  The abbreviation {{{\fns}}} for {{{\functions}}} was added (to the supplemental list).
1.0.4: (2011-04-17) Comments changed.  Consistent capitalisation was applied to the section names.

!Code
$
\def\BasicMacros{

% Miscellaneous basics

\def\parentheses#1{{\left( {#1} \right)}}
\def\brackets#1{{\left[ {#1} \right]}}
\def\solidus#1/#2{{\left. {#1} \left/ \vphantom{#1} {#2} \right. \right.}}
\def\of{\parentheses}
\def\operator{\operatorname}

\def\script{\mathcal}
\def\gothic{\mathfrak}
\def\blackBoard{\mathbb}
\def\boldText{\mathbf}
\def\bold{\boldsymbol}


% Symbols

\def\epsilon{\varepsilon}
\def\infinity{\infty}
\def\continuum{\gothic{c}}

\def\naturals{\blackBoard{N}}
\def\integers{\blackBoard{Z}}
\def\rationals{\blackBoard{Q}}
\def\reals{\blackBoard{R}}
\def\complexNumbers{\blackBoard{C}}

\def\half{\frac{1}{2}}
\def\third{\frac{1}{3}}
\def\quarter{\frac{1}{4}}


% Sets and set operations

\def\Set#1{{\left\lbrace {#1} \right\rbrace}}
\def\set#1:#2{\Set{{#1} \colon {#2}}}
\def\singleton{\Set}
\def\emptySet{\emptyset}

\def\Sequence#1{{\left\langle {#1} \right\rangle}}
\def\sequence#1:#2{\Sequence{{#1} \colon {#2}}}
\def\tuple{\parentheses}
\def\emptyTuple{\tuple{}}

\def\family#1:#2{{\parentheses{#1}_{#2}}}

\def\subset{\subseteq}
\def\superset{\supseteq}
\def\union{\cup}
\def\Union{\bigcup}
\def\intersect{\cap}
\def\Intersection{\bigcap}
\def\setMinus{\setminus}
\def\cross{\times}
\def\product{\prod}

\def\powerSet#1{{\script{P}\of{#1}}}
\def\functionSpace#1#2{{{#2}^{#1}}}
\def\cardinality#1{{\left\lvert {#1} \right\rvert}}
\def\isEmpty{= \emptySet}
\def\isNonempty{\not= \emptySet}


% Functions and function operations

\def\function#1:#2->#3{{{#1} \colon {#2} \to {#3}}}
\def\mapsTo{\mapsto}
\def\map#1->#2{\parentheses{{#1} \mapsTo {#2}}}

\def\compose{\circ}
\def\inverse#1{{{#1}^{-1}}}
\def\restriction#1#2{{{\left. {#1} \right\lvert}_{#2}}}

\def\image#1#2{{{#2}\of{#1}}}
\def\preimage#1#2{{{#2}^{-1}\of{#1}}}
\def\fiber#1#2{\preimage{\singleton{#1}}{#2}}

\def\identity#1{{\operator{id}_{#1}}}


% Topology related notation

\def\homeomorphic{\cong}
\def\convergesTo{\to}

\def\closure#1{\overline{#1}}
\def\closureIn#1#2{{\closure{#2}^{#1}}}
\def\interior#1{{\operator{int}\of{#1}}}
\def\interiorIn#1#2{{\operator{int}_{#1}\of{#2}}}

\def\collection{\script}
\def\collections{\gothic}
\def\topology{\collection}
\def\cover{\collection}
\def\filter{\collection}
\def\ideal{\collection}

\def\interval#1#2,#3#4{{\left#1 {#2}, {#3} \right#4}}
\def\unitInterval{\interval[0, 1]}
\def\plane{{\functionSpace{2}{\reals}}}
\def\stoneCechCompactification#1{{\beta{#1}}}


% General notation

\def\modulus#1{{\left\lvert {#1} \right\rvert}}
\def\norm#1{{\left\Vert {#1} \right\Vert}}
\def\equivalent{\sim}
\def\quotient{\solidus}


% Aliases

\def\functions{\function}

}

\def\BasicMacroAbbreviations{

\def\p{\parentheses}
\def\b{\brackets}

\def\N{\naturals}
\def\Z{\integers}
\def\Q{\rationals}
\def\R{\reals}
\def\C{\complexNumbers}

\def\sng{\singleton}
\def\Seq{\Sequence}
\def\seq{\sequence}
\def\pSet{\powerSet}
\def\fnSpace{\functionSpace}
\def\card{\cardinality}

\def\fn{\function}
\def\id{\identity}

\def\homeo{\homeomorphic}
\def\sCC{\stoneCechCompactification}

}

% The following is a supplement to \BasicMacros  and \BasicMacroAbbreviations.  This macroset can be thought of as the list of changes that will be made for the next version.
\def\BasicMacrosSupplement
{

% Because 'blackboard' is one word the second 'b' should not be capitalised in the command name.
\def\blackboard{\blackBoard}

% Given the commands \function, \fn, and \functions, it is only natural that we have a command \fns.
\def\fns{\functions}

}
$
!Summary
Here we initialise the ~MathJax environment.

The Init section of this tiddler is rendered automatically when the site is loaded.  This effect was achieved by adding the line
{{{
<div style='display:none' macro='tiddler LatexNucleus##Init'></div>
}}}
to [[PageTemplate]].  It is important to add this line before the <div id='displayArea'> tag so that mathematics which appears in a default tiddle is rendered correctly.  The goal of Init is to initialise the ~MathJax environment and then call \SaveGlobals so that this freshly initialised state can be returned to at any time by use of the command \Clean.

!Init
$
%We hook the usual macro-creating Latex commands up to Richard's javascript routines.
\def\newcommand{\MetaNewCom}
\def\renewcommand{\MetaNewCom}
\def\def{\MetaDef}

%Here we make copies of the standard Latex commands which we may displace.
\let\LaTeXepsilon\epsilon
\let\LaTeXsubset\subset
\let\LaTeXrestriction\restriction

%We transclude all of the macroset tiddlers so that the macroset macros are always available.  If you create a new macroset then you'll need to add the appropriate line here so that it is detected when the site loads.
$<<tiddler BasicMacros##Code>>$
$<<tiddler KunenMacros##Code>>$
$<<tiddler GarethMacros##Code>>$

%We also include a dummy macroset, \LocalMacros, which can be used for the main extra macros of a particular tiddler.  This can be useful, for example, if you want to comment on someones work using some of your personal macros but don't want to replace any of the local definitions.
\def\LocalMacros{}

%We preload the macrosets which are considered global.
\BasicMacros
\BasicMacroAbbreviations
\BasicMacrosSupplement

%And finally we save the current state of the ~MathJax definition tables.  This is the state we return to whenever \Clean is called.  We also call \Clean here to keep the ~MathJax environment in good condition when this tiddler is viewed.  This is put in a separate mathematics block because \SaveGlobals will throw an error on every call other than the first and this error will prevent \Clean from being called if \Clean is later on in the same block.
\SaveGlobals
$$
\Clean
$
/***
|''Name''|PluginMathJax|
|''Description''|Displays TeX math using MathJax|
|''Author''|[[Canada East|http://tiddlywiki.canada-east.ca/]]|
|''Version''|1.3|
|''Date''|2010-10-07|
|''CodeRepository''|[[PluginMathJax|http://tiddlywiki.canada-east.ca/#PluginMathJax]]|
|''CoreVersion''|[[2.6.1|http://www.tiddlywiki.com]]|
|''Requires''|[[MathJax v1.01|http://www.mathjax.org/]]|
|''Feedback''|[[Contact|https://spreadsheets.google.com/viewform?formkey=dGg2RkpxZW5zWTh6QjZxOXgzZUlfakE6MQ]]|
|''Tweaks''|~MathJax location and default HTML-CSS scale changed by Gareth Davies.  I've also added a hook to a ~MathJax extension for managing local definitions written by Richard Lupton and I've set the newcommand extension to load on start-up.|
!Description
This plugin uses [[MathJax|http://www.mathjax.org/]] to typeset ([[AMS|http://www.ams.org/publications/authors/tex/amslatex]]) [[LaTeX|http://www.latex-project.org/]]  math. It can also be configured to use additional MathJax functionality.
>"MathJax is an open source JavaScript display engine for mathematics that works in all modern browsers."
!Notes
Right click any math display for a MathJax menu. The user can select the renderer and zoom settings. It performs best in [[Webkit|http://en.wikipedia.org/wiki/List_of_web_browsers#WebKit-based_browsers]] based browsers. Larger math displays such as the additional examples tiddler below can put quite a load on IE. PluginMathJax is based on: [[Plugin: jsMath|http://bob.mcelrath.org/tiddlyjsmath.html]]
!Installation
#''Backup'' your TiddlyWiki!
#It is required that the MathJax directory is installed in '''js/MathJax/''' in the same location as the TiddlyWiki html file.<br>(Or edit the script source where commented in the plugin code below after installation to match the location of your MathJax install.)
#Install this plugin (and examples tiddler linked below if desired).
!Usage
|!Source|!Output|h
|{{{The variable $x$ is real.}}}|The variable $x$ is real.|
|{{{The variable \(y\) is complex.}}}|The variable \(y\) is complex.|
|{{{This \[\int_a^b x = \frac{1}{2}(b^2-a^2)\] is an easy integral.}}}|This \[\int_a^b x = \frac{1}{2}(b^2-a^2)\] is an easy integral.|
|{{{This $$\int_a^b \sin x = -(\cos b - \cos a)$$ is another easy integral.}}}|This $$\int_a^b \sin x = -(\cos b - \cos a)$$ is another easy integral.|
|{{{Block formatted equations may also use the 'equation' environment \begin{equation}  \int \tan x = -\ln \cos x \end{equation} }}}|Block formatted equations may also use the 'equation' environment \begin{equation}  \int \tan x = -\ln \cos x \end{equation}|
|{{{Equation arrays are also supported \begin{eqnarray} a &=& b \\ c &=& d \end{eqnarray} }}}|Equation arrays are also supported \begin{eqnarray} a &=& b \\ c &=& d \end{eqnarray} |
|{{{I spent \$7.38 on lunch.}}}|I spent \$7.38 on lunch.|
|{{{I had to insert a backslash (\\) into my document}}}|I had to insert a backslash (\\) into my document|
| <br>[[Complete list of supported LaTeX commands|http://www.mathjax.org/resources/docs/?tex.html#supported-latex-commands]] |>|
!Examples
[[Additional MathJax Examples|MathJax Examples]]
!Configuration
MathJax can be manually configured if desired by editing the code below (advanced). See the [[MathJax documentation|http://www.mathjax.org/resources/docs/?configuration.html#configuration-options-by-component]] for details.
!Revision History
*v1.3, 2010-10-07, returned to original formatters design, kept modified wikify and recommended way of loading MathJax dynamically, removed the tex2jax extension and corrected several browser compatibility issues (InnerHTML for Opera and IE9).
*v1.2, 2010-10-05, removed some redundant MathJax config entries, moved modified wikify and MathJax.Hub.Queue call.
*v1.1, 2010-10-03, autoLinkWikiWords disabled in absence of DisableWikiLinksPlugin, modifed wikify.
*v1.0, 2010-09-26, Initial Release
!Code
***/
//{{{

if(!version.extensions.PluginMathJax) { 
    version.extensions.PluginMathJax = { installed: true };

    config.extensions.PluginMathJax = {

        install: function() {

            var script = document.createElement("script");
            script.type = "text/javascript";

            // *** Use the location of your MathJax! *** :
            /*
             * Gareth: The following line assumes you have
             * MathJax installed on your server in a sensible
             * location.  I've commented this out.
             */
            //script.src = "js/MathJax/MathJax.js";

            /*
             * Because this tiddlywiki is currently hosted on
             * tiddlyspace.com I've had to point to the 'MathJax
             * Content Delivery Network' instead.
             */
            script.src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
            // EndGareth

            /*
             * Gareth: Richard's local definition ~MathJax
             * extension (implementation of TeXs \let command)
             * has been added to the list of extensions along
             * with the newcommand extension upon which it
             * depends.  Also, the scale option for HTML-CSS was
             * changed from 115 to 100.
             */
            var mjconfig = 'MathJax.Hub.Config({' +
            'jax: ["input/TeX","output/HTML-CSS"],' +
            'extensions: ["TeX/AMSmath.js", "TeX/AMSsymbols.js", "TeX/newcommand.js", "http://oxkunengroup.tiddlyspace.com/localTeX.js"],' +
            '"HTML-CSS": {' +
                'scale: 100' +
                '}' +
            '});' +

            'MathJax.Hub.Startup.onload();';

            var ie9RegExp = /^9\./;
            var UseInnerHTML = (config.browser.isOpera || config.browser.isIE && ie9RegExp.test(config.browser.ieVersion[1]));

            if (UseInnerHTML) {script.innerHTML = mjconfig;}
                else {script.text = mjconfig;}

            script.text = mjconfig;

            document.getElementsByTagName("head")[0].appendChild(script);

            // Define wikifers for latex
            config.formatterHelpers.mathFormatHelper = function(w) {
                var e = document.createElement(this.element);
                e.type = this.type;
                var endRegExp = new RegExp(this.terminator, "mg");
                endRegExp.lastIndex = w.matchStart+w.matchLength;
                var matched = endRegExp.exec(w.source);
                if(matched) {
                    var txt = w.source.substr(w.matchStart+w.matchLength,
                        matched.index-w.matchStart-w.matchLength);
                    if(this.keepdelim) {
                      txt = w.source.substr(w.matchStart, matched.index+matched[0].length-w.matchStart);
                    }
                    if (UseInnerHTML) {
                        e.innerHTML = txt;
                    } else {
                        e.text = txt;
                    }
                    w.output.appendChild(e);
                    w.nextMatch = endRegExp.lastIndex;
                }
            }

            config.formatters.push({
              name: "displayMath1",
              match: "\\\$\\\$",
              terminator: "\\\$\\\$\\n?",
              termRegExp: "\\\$\\\$\\n?",
              element: "script",
              type: "math/tex; mode=display",
              handler: config.formatterHelpers.mathFormatHelper
            });

            config.formatters.push({
              name: "inlineMath1",
              match: "\\\$", 
              terminator: "\\\$",
              termRegExp: "\\\$",
              element: "script",
              type: "math/tex",
              handler: config.formatterHelpers.mathFormatHelper
            });

            var backslashformatters = new Array(0);

            backslashformatters.push({
              name: "inlineMath2",
              match: "\\\\\\\(",
              terminator: "\\\\\\\)",
              termRegExp: "\\\\\\\)",
              element: "script",
              type: "math/tex",
              handler: config.formatterHelpers.mathFormatHelper
            });

            backslashformatters.push({
              name: "displayMath2",
              match: "\\\\\\\[",
              terminator: "\\\\\\\]\\n?",
              termRegExp: "\\\\\\\]\\n?",
              element: "script",
              type: "math/tex; mode=display",
              handler: config.formatterHelpers.mathFormatHelper
            });

            backslashformatters.push({
              name: "displayMath3",
              match: "\\\\begin\\{equation\\}",
              terminator: "\\\\end\\{equation\\}\\n?",
              termRegExp: "\\\\end\\{equation\\}\\n?",
              element: "script",
              type: "math/tex; mode=display",
              handler: config.formatterHelpers.mathFormatHelper
            });

            // These can be nested.  e.g. \begin{equation} \begin{array}{ccc} \begin{array}{ccc} ...
            backslashformatters.push({
              name: "displayMath4",
              match: "\\\\begin\\{eqnarray\\}",
              terminator: "\\\\end\\{eqnarray\\}\\n?",
              termRegExp: "\\\\end\\{eqnarray\\}\\n?",
              element: "script",
              type: "math/tex; mode=display",
              keepdelim: true,
              handler: config.formatterHelpers.mathFormatHelper
            });

            // The escape must come between backslash formatters and regular ones.
            // So any latex-like \commands must be added to the beginning of
            // backslashformatters here.
            backslashformatters.push({
                name: "escape",
                match: "\\\\.",
                handler: function(w) {
                    w.output.appendChild(document.createTextNode(w.source.substr(w.matchStart+1,1)));
                    w.nextMatch = w.matchStart+2;
                }
            });

          config.formatters=backslashformatters.concat(config.formatters);

          old_wikify = wikify;
          wikify = function(source,output,highlightRegExp,tiddler)
          {
              old_wikify.apply(this,arguments);
              if (window.MathJax) {MathJax.Hub.Queue(["Typeset",MathJax.Hub,output])}
          };

        }
    };

  config.extensions.PluginMathJax.install();

}

//}}}
LyogQSBjb21tYW5kIGxvY2FsaXphdGlvbiBzeXN0ZW0gZm9yIE1hdGhKYXggTGFUZVggKi8KCi8qIFRvIHVzZSwgbWFrZSBzdXJlIFRlWC9uZXdjb21tYW5kLmpzIGlzIGxvYWRlZCBleHBsaWNpdGx5IGFzIGFuIGV4dGVuc2lvbiAqLwoKTWF0aEpheC5IdWIuUmVnaXN0ZXIuU3RhcnR1cEhvb2soIlRlWCBuZXdjb21tYW5kIFJlYWR5IixmdW5jdGlvbiAoKSB7CiAgdmFyIFZFUlNJT04gPSAiMS4wLjEiOwogIAogIHZhciBURVggPSBNYXRoSmF4LklucHV0SmF4LlRlWDsKICB2YXIgVEVYREVGID0gVEVYLkRlZmluaXRpb25zOwogIHZhciBHTE9CQUxTVE9SRSA9IG51bGw7CQkvKiBXZSBpbml0aWFsaXNlIHRoaXMgdG8gbnVsbCBmb3IgdGhlIHB1cnBvc2Ugb2Ygc2FmZXR5IGNoZWNrcyBsYXRlciAtIGl0IHNob3VsZCBiZSBudWxsIGFueXdheSAqLwogIHZhciBTVE9SRURCQVNJQ01BQ1JPUyA9IG51bGw7CgogIC8qCiAgICogTm90IGV2ZXJ5dGhpbmcgaW4gVEVYREVGIGlzIGEgbGlzdCBvZiBjb21tYW5kcy4gIFRoZSBmb2xsb3dpbmcgaXMKICAgKiBhIGxpc3Qgb2YgYWxsIG9mIHRoZSBvYmplY3RzIGluIFRFWERFRiB0aGF0IHdlIHdhbnQgdG8gY29uc2lkZXIKICAgKiB3aGVuIGNvcHlpbmcgY29tbWFuZHMuICBIb3BlZnVsbHkgcmVzdHJpY3Rpbmcgb3Vyc2VsdmVzIHRvIHRoaXMKICAgKiBzdWJzZXQgb2YgVEVYREVGIGlzIGFsbCB3ZSdsbCBuZWVkIHRvIGdldCB1bmV2YWwgd29ya2luZyBpbgogICAqIENocm9taXVtLgogICAqLwogIHZhciBjb21tYW5kTGlzdHMgPSBbIm1hdGhjaGFyMG1pIiwgIm1hdGhjaGFyMG1vIiwgIm1hdGhjaGFyNyIsICJkZWxpbWl0ZXIiLCAibWFjcm9zIiwgImVudmlyb25tZW50Il07CgogIC8qIFdlIG5vdyBtYW5hZ2UgdGhlIHZhcmlhYmxlcyB3ZSBuZWVkIGZvciB0aGUgc3RhY2tzLgkqLwoKICAvKiBtYWNyb1N0YWNrIGlzIGEgdHdvIHBhcnQgYXJyYXkuIFRoZSBmaXJzdCBwYXJ0IHN0b3JlcyB0aGUgY29udHJvbCBzdHJpbmdzIChjcyksIHdoaWxlCSoKICAgKiB0aGUgc2Vjb25kIHBhcnQgc3RvcmVzIHRoZSBkaXNwbGFjZWQgZGVmaW5pdGlvbi4gVGhlc2UgbWlnaHQgYmUgY29tYmluZWQgaW50byBhIHNpbmdsZQkqCiAgICogYXJyYXksIGJ1dCBpdHMgZG9uZSB0aGlzIHdheSBmb3Igbm93IHRvIHN0b3Agb2JqZWN0cyBnZXR0aW5nIG11ZGRsZWQuCQkJKi8KICB2YXIgbWFjcm9TdGFjayA9IG5ldyBBcnJheSgibmFtZSIsICJkZWZpbml0aW9uIik7CgogIC8qIFRoZXNlIGNvbnN0YW50cyBqdXN0IGltcHJvdmUgbGVnaWJpbGl0eSAtIHRoaW5rIG9mIGkgYXMgImluZGV4IgkqCiAgICogc28gaW5kZXggb2YgTkFNRVMsIGluZGV4IG9mIERFRmlOaXRpb25TLgkJCQkqLwogIGNvbnN0IGlOQU1FUyA9IDA7CiAgY29uc3QgaURFRm5TID0gMTsKCiAgLyogSW5pdGlhbGlzZSBtYWNybyBzdGFjayAqLwogIG1hY3JvU3RhY2tbaU5BTUVTXSA9IFtdOwkvKiBbXSBpcyBhbiBlbXB0eSBhcnJheTsgc2FtZSBhcyBzYXlpbmcgbmV3IEFycmF5KCk7ICovCiAgbWFjcm9TdGFja1tpREVGblNdID0gW107CiAgbWFjcm9TdGFja1tpTkFNRVNdWzBdID0gW107CiAgbWFjcm9TdGFja1tpREVGblNdWzBdID0gW107CgogIC8qIFRoaXMgdmFyaWFibGUgaXMgdXNlZCB0byB0cmFjayB0aGUgc3RhY2sgKi8KICB2YXIgaGVpZ2h0ID0gMDsKICAKICBNYXRoSmF4Lkh1Yi5JbnNlcnQoVEVYREVGLHsKICAgIG1hY3JvczogewoJU2F2ZUdsb2JhbHM6CSdTYXZlR2xvYmFsJywKCUNsZWFuOgkJJ0NsZWFuTG9jYWxzJywKCU1ldGFOZXdDb206CSdNZXRhTmV3Q29tbWFuZCcsCglNZXRhRGVmOgknTWV0YURlZmluZScsCglQdXNoTWFjcm9zOgkncHVzaE1hY3JvcycsCglQb3BNYWNyb3M6CSdwb3BNYWNyb3MnLAoJUG9wQWxsOgkJJ3BvcEFsbCcsCglsZXQ6CQknTGV0JwogICAgfQogIH0pCgogVEVYLlBhcnNlLkF1Z21lbnQoewoKCS8qIF9jaGVja1N0YWNrOiBpbnRlcm5hbCBmdW5jdGlvbiB0aGF0IG1ha2VzIHN1cmUgdGhlIHN0YWNrIGF0IGl0cyBjdXJyZW50IGhlaWdodCBpdCBpbml0aWFsaXplZCwgYW5kIGZpeGVzIGl0IGlmIGl0cyBub3QgKi8KCV9jaGVja1N0YWNrOiBmdW5jdGlvbigpewoKCQkvKiBJZiBvdXIgY3VycmVudCBoZWlnaHQgaGFzIG5vdGhpbmcgaW4gaXQsIGluaXRpYWxpc2UgdGhlIGxldmVsLiBOb3RlIHdlIG1heSBoYXZlIGRpc3BsYWNlZCBub3RoaW5nCSoKCQkgKiBzbyBpdHMgbm8gZ29vZCBjaGVja2luZyB0aGUgaURFRm5TIHBhcnQgb2YgbWFjcm9TdG9yZQkJCQkJCSovCgkJaWYobWFjcm9TdGFja1tpTkFNRVNdW2hlaWdodF0gPT0gbnVsbCkJCS8qIEl0IHRoZSBzdGFjayBpcyBub3QgaW5pdGlhbGl6ZWQgKi8KCQkJewoJCQkJbWFjcm9TdGFja1tpTkFNRVNdW2hlaWdodF0gPSBbXTsJLyogRml4IGl0ICovCgkJCQltYWNyb1N0YWNrW2lERUZuU11baGVpZ2h0XSA9IFtdOwoJCQl9Cgl9LAoJCgoJLyogU2F2ZUdsb2JhbDogc3RvcmUgdGhlIGdsb2JhbCBzZXQgb2YgZGVmaW5pdGlvbnMuIFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uY2UuICovCglTYXZlR2xvYmFsOiBmdW5jdGlvbiAoKSB7CgkJaWYoR0xPQkFMU1RPUkUgPT0gbnVsbCkJLyogV2UgaGF2ZW4ndCBkZWZpbmVkIHRoZSBnbG9iYWwgZGVmaW5pdGlvbiBzZXQgeWV0ICovCgkJewoJCQkvKiBHTE9CQUxTVE9SRSBpcyBnb2luZyB0byBiZSBhIGNvcHkgb2YgVEVYREVGLiBJdCB3aWxsIGJlIGFuIGFzc29jaWF0aXZlIGFycmF5LiBJbml0aWFsaXplIGl0LiAqLwoJCQlHTE9CQUxTVE9SRSA9IFtdOwoKCQkJLyogTm93IHdlIGl0ZXJhdGUgb3ZlciB0aGUgZW50cmllcyBvZiBURVhERUYgYW5kIGNvcHkgdGhlbSBvdmVyIHRvIEdMT0JBTFNUT1JFICovCgkJCWZvciggdmFyIGlMSVNUIGluIGNvbW1hbmRMaXN0cyApewoJCQkJR0xPQkFMU1RPUkVbaUxJU1RdID0gZXZhbCh1bmV2YWwoVEVYREVGW2lMSVNUXSkpOwoJCQl9OwoKCQkJLyogVGhyb3cgYSB3YXJuaW5nIGlmIG1hbnkgbG9jYWwgZW52aXJvbm1lbnRzIGhhdmUgYmVlbiBzdGFja2VkIHVwICovCgkJCWlmKG1hY3JvU3RhY2tbaU5BTUVTXVsxXSAhPSBudWxsKQoJCQl7CgkJCQlhbGVydCgiWW91IGNhbGxlZCBcXFNhdmVHbG9iYWxzLCBidXQgeW91IHBvc3NpYmx5IGhhdmUgbmVzdGVkIGxvY2FsIGVudmlyb25tZW50cy4gXG4gT25seSB0aGUgYmFzZSBsZXZlbCBpcyBndWFyYW50ZWVkIHRvIGJlIHNhdmVkLiIpOwoJCQl9CgoJCQkvKiBOb3cgd2Ugd2FudCBoZWlnaHQgdG8gYmUgc2l0dGluZyBhdCAxIGFmdGVyIGFsbCB0aGlzLCBidXQgaWYgd2UgbmV2ZXIgd2VudCB0aGF0IGhpZ2gJKgoJCQkgKiBiZWZvcmUgc2F2aW5nLCBpdCB3aWxsIGJlIHNpdHRpbmcgYXQgMCBhdCB0aGUgbWludXRlLiBGaXggdGhpcy4JCQkqLwoJCQlpZihoZWlnaHQgPT0gMCl7CgkJCQloZWlnaHQgPSAxOwoJCQkJLyogV2UgaGF2ZSBub3RoaW5nIGF0IHRoaXMgaGVpZ2h0LCBzbyBpbml0aWFsaXplIHRoZSBhcnJheXMgc28gd2UgZG9uJ3QgY2F1c2UgYW55IGNyYXNoZXMgKi8KCQkJCXRoaXMuX2NoZWNrU3RhY2soKTsKCQkJfQoKCQkJLyogQ29weSB0aGUgbG9jYWwgbWFjcm9TdGFjayBmb3IgYmFja3VwIC0gdGhpcyBjb3BpZXMgdGhlIHdob2xlIHRoaW5nLCBhbmQgbm90ZSBiZWNhdXNlIG9mIHRoZSBhYm92ZQkqCgkJCSAqIGl0cyBhbHJlYWR5IHNldCB1cCBhdCBoZWlnaHQgMS4JCQkJCQkJCQkqLwkKCQkJU1RPUkVEQkFTSUNNQUNST1MgPSBldmFsKHVuZXZhbChtYWNyb1N0YWNrKSk7CgoJCX0KCQllbHNlCS8qIFdlJ3ZlIGFscmVhZHkgc2F2ZWQgdGhlIGdsb2JhbCBkZWZpbml0aW9uIHNldCwgc28gdGhyb3cgYW4gZXJyb3IgKi8KCQl7CgkJCVRFWC5FcnJvcigiR2xvYmFscyB3ZXJlIGFscmVhZHkgc2F2ZWQuIik7CgkJfQoJICAgIH0sCgoJLyogSW1wbGVtZW50IFxDbGVhbjogdGhpcyByZXN0b3JlcyB0aGUgZ2xvYmFsIG1hY3JvIHN0YXRlIHRvIHRoYXQgc2F2ZWQgYnkgXFNhdmVHbG9iYWxzLgkqCgkgKiBJdCBzaG91bGRuJ3Qgd29yayBpZiBcU2F2ZUdsb2JhbHMgaGFzIG5vdCBiZWVuIGNhbGxlZC4JCQkJCSovCglDbGVhbkxvY2FsczogZnVuY3Rpb24gKCkgewoJCWlmKEdMT0JBTFNUT1JFICE9IG51bGwpCS8qIFdlIHNhdmVkIHNvbWV0aGluZyB0byByZXN0b3JlICovCgkJewoJCQkvKiBDb3B5IGJhY2sgR0xPQkFMU1RPUkUgaW50byBURVhERUYgdG8gcmVzdG9yZSB0aGUgb2xkIGVudmlyb25tZW50LiBURVhERUYgbWF5IGhhdmUgaGFkIHNvbWUgZW50cmllcwkqCgkJCSAqIGFkZGVkLCBvciBwb3NzaWJseSByZW1vdmVkLiBUbyBkZWFsIHdpdGggdGhvc2UgYWRkZWQgd2UgbG9vcCBvdmVyIFRFWERFRidzIGVudHJpZXMgYW5kIGRlbGV0ZQkqCgkJCSAqIGFueXRoaW5nIHRoYXQgaGFzIGJlZW4gYWRkZWQsIHdoaWxlIHJlc3RvcmluZyB0aGUgdmFsdWVzIGZyb20gR0xPQkFMU1RPUkUuIFNlY29uZGx5LCB0byBkZWFsIHdpdGgJKgoJCQkgKiB0aG9zZSBlbnRyaWVzIHRoYXQgbWF5IGhhdmUgYmVlbiByZW1vdmVkLCB3ZSBsb29wIG92ZXIgR0xPQkFMU1RPUkUncyBlbnRyaWVzLCBhbmQgaWYgY29ycmVzcG9uZGluZwkqCgkJCSAqIGVudHJpZXMgZG8gbm90IGV4aXN0IGluIFRFWERFRiwgd2UgY29weSB0aGVtIGFjcm9zcy4JCQkJCQkJKi8KCQkJZm9yKCB2YXIgaUxJU1QgaW4gY29tbWFuZExpc3RzICl7CgkJCQlpZiggR0xPQkFMU1RPUkVbaUxJU1RdICE9IG51bGwpewoJCQkJCVRFWERFRltpTElTVF0gPSBldmFsKHVuZXZhbChHTE9CQUxTVE9SRVtpTElTVF0pKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlkZWxldGUgVEVYREVGW2lMSVNUXTsJLyogRGVhbCB3aXRoIGVudHJpZXMgYWRkZWQgdG8gVEVYREVGICovCgkJCQl9CgkJCX07CgkJCS8qIE5vdyBkZWFsIHdpdGggYW55IGVudHJpZXMgcmVtb3ZlZCBmcm9tIFRFWERFRiAqLwoJCQlmb3IoIHZhciBpTElTVCBpbiBHTE9CQUxTVE9SRSl7CgkJCQlpZihURVhERUZbaUxJU1RdID09IG51bGwpewoJCQkJCVRFWERFRltpTElTVF0gPSBldmFsKHVuZXZhbChHTE9CQUxTVE9SRVtpTElTVF0pKTsKCQkJCX0KCQkJfTsKCgkJCS8qIE5vdyB3ZSBkZWFsIHdpdGggY29uZmlndXJpbmcgbWFjcm9TdGFjayAqLwoKCQkJLyogUmVjb3ZlciB0aGUgc2F2ZWQgbWFjcm8gc3RhY2sgYW5kIHNldCB0aGUgY29ycmVjdCBoZWlnaHQgKi8KCQkJbWFjcm9TdGFjayA9IGV2YWwodW5ldmFsKFNUT1JFREJBU0lDTUFDUk9TKSk7CgkJCWhlaWdodCA9IG1hY3JvU3RhY2tbaU5BTUVTXS5sZW5ndGggLSAxOwoKCQkJLyogQ2hlY2sgdGhlIHN0YWNrIGlzIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGhlaWdodCAtIGl0IHNob3VsZCBiZSwgYnV0IGNoZWNrIGFueXdheSAqLwoJCQlpZihoZWlnaHQgPT0gMCl7CgkJCQloZWlnaHQgPSAxOwoJCQkJLyogV2UgaGF2ZSBub3RoaW5nIGF0IHRoaXMgaGVpZ2h0LCBzbyBpbml0aWFsaXplIHRoZSBhcnJheXMgc28gd2UgZG9uJ3QgY2F1c2UgYW55IGNyYXNoZXMgKi8KCQkJCXRoaXMuX2NoZWNrU3RhY2soKTsKCQkJfQoKCgkJCS8qIENsZWFuIGF3YXkgYW55IG9sZCBsb2NhbCBlbnZpcm9ubWVudHMgKi8KCQkJdGhpcy5wb3BBbGwoKTsKCQkJCgkJfQoJCWVsc2UJLyogV2UgZGlkbid0IGNhbGwgXFNhdmVHbG9iYWxzIGZpcnN0ICovCgkJewoJCQlURVguRXJyb3IoIk5vdGhpbmcgd2FzIHNhdmVkIHRvIHJlc3RvcmUuIikKCQl9CgkgICAgfSwKCgkvKiBfcmVjb3JkTWFjcm86IFRoaXMgaXMgYW4gaW50ZXJuYWwgZnVuY3Rpb24gd2hpY2ggYWJzdHJhY3RzIG91dCB0aGUgcHJvY2VzcyBvZiBzdG9yaW5nCSoKCSAqIG1hY3JvcyBvbiB0aGUgc3RhY2suIFRoaXMgc2hvdWxkIGhlbHAgcmVkdWNlIGNvZGUgZHVwbGljYXRpb24uCQkJCSovCglfcmVjb3JkTWFjcm86IGZ1bmN0aW9uIChjb21zKXsKCQkvKiBDaGVjayB0aGUgc3RhY2sgYXQgdGhlIGN1cnJlbnQgaGVpZ2h0IGlzIGluaXRpYWxpemVkIHByb3Blcmx5ICovCgkJdGhpcy5fY2hlY2tTdGFjaygpOwoKCQkvKiBOb3cgd2Ugc2F2ZSB0aGUgbmFtZSBvZiB0aGUgY29tbWFuZCB3ZSB3YW50IHRvIHJlY29yZCAqLwoJCShtYWNyb1N0YWNrW2lOQU1FU11baGVpZ2h0XSkucHVzaChjb21zKTsKCQkvKiBBbmQgdGhlIChwb3NzaWJseSBOVUxMKSBkaXNwbGFjZWQgZGVmaW5pdGlvbiAqLwoJCShtYWNyb1N0YWNrW2lERUZuU11baGVpZ2h0XSkucHVzaChURVhERUYubWFjcm9zW2NvbXNdKTsKCQkvKiBUaGUgZXZhbCB1bmV2YWwgaXMgZm9yIHNhZmV0eS4gTXkgb3RoZXIgYXJyYXlzIGVuZGVkIHVwIHJlZmVyZW5jaW5nLiBJIHNoYWxsIHRlc3QgdGhpcyBsYXRlciA8PFRFU1Q+PiAgTm90ZSB1c2VkIGluIHBvcCgpLiovCgl9LAoKCS8qIEltcGxlbWVudCBcTWV0YU5ld0NvbSwgb3VyIG5ldyBcbmV3Y29tbWFuZCBmdW5jdGlvbiAqLwoJTWV0YU5ld0NvbW1hbmQ6IGZ1bmN0aW9uIChuYW1lKXsKCQl2YXIgY3MgPSB0aGlzLnRyaW1TcGFjZXModGhpcy5HZXRBcmd1bWVudChuYW1lKSksCgkJbiAgPSB0aGlzLnRyaW1TcGFjZXModGhpcy5HZXRCcmFja2V0cyhuYW1lKSksCgkJZGVmID0gdGhpcy5HZXRBcmd1bWVudChuYW1lKTsKCgkJaWYgKG4gPT09ICcnKSB7biA9IG51bGx9CgkJaWYgKGNzLmNoYXJBdCgwKSA9PT0gIlxcIikge2NzID0gY3Muc3Vic3RyKDEpfQoKCQkvKiBWYXJpb3VzIGVycm9yIGNoZWNrcyAqLwoJCWlmICghY3MubWF0Y2goL14oLnxbYS16XSspJC9pKSkge1RFWC5FcnJvcigiSWxsZWdhbCBjb250cm9sIHNlcXVlbmNlIG5hbWUgZm9yICIrbmFtZSl9CgkJaWYgKG4gIT0gbnVsbCAmJiAhbi5tYXRjaCgvXlswLTldKyQvKSkge1RFWC5FcnJvcigiSWxsZWdhbCBudW1iZXIgb2YgcGFyYW1ldGVycyBzcGVjaWZpZWQgaW4gIituYW1lKX0KCgkJLyogUmVjb3JkIHRoZSBjaGFuZ2UgaW4gbWFjcm8qLwoJCXRoaXMuX3JlY29yZE1hY3JvKGNzKTsKCgkJLyogV3JpdGUgdGhlIG5ldyBtYWNybyAqLwoJCVRFWERFRi5tYWNyb3NbY3NdID0gWydNYWNybycsZGVmLG5dOwoJfSwKCgkvKiBJbXBsZW1lbnQgXE1ldGFEZWYgb3VyIG5ldyBcZGVmIGZ1bmN0aW9uICovCglNZXRhRGVmaW5lOiBmdW5jdGlvbiAobmFtZSl7IAoJCXZhciBjcyA9IHRoaXMuR2V0Q1NuYW1lKG5hbWUpLAoJCXBhcmFtcyA9IHRoaXMuR2V0VGVtcGxhdGUobmFtZSwiXFwiK2NzKSwKCQlkZWYgICAgPSB0aGlzLkdldEFyZ3VtZW50KG5hbWUpOwoKCQkvKiBSZWNvcmQgdGhlIGNoYW5nZSBpbiBtYWNybyAqLwoJCXRoaXMuX3JlY29yZE1hY3JvKGNzKTsKCgkJLyogV3JpdGUgdGhlIG5ldyBvbmUgKi8KCQlpZiAoIShwYXJhbXMgaW5zdGFuY2VvZiBBcnJheSkpCgkJewoJCQlURVhERUYubWFjcm9zW2NzXSA9IFsnTWFjcm8nLGRlZixwYXJhbXNdCgkJfQoJCWVsc2UKCQl7CgkJCVRFWERFRi5tYWNyb3NbY3NdID0gWydNYWNyb1dpdGhUZW1wbGF0ZScsZGVmLHBhcmFtc1swXSxwYXJhbXNbMV1dCgkJfQoJfSwKCgkvKiBwdXNoTWFjcm9zOiBzYXZlIHRoZSBjdXJyZW50IHNldCBvZiBtYWNyb3MgYW5kIGdyYWIgYSBuZXcgZW52aXJvbm1lbnQgdGhhdCBjYW4gYmUgdGhyb3duIGF3YXkgbGF0ZXIgKi8KCXB1c2hNYWNyb3M6IGZ1bmN0aW9uKCl7CgkJLyogV2Ugd2FudCB0byBzdGFydCByZWNvcmRpbmcgc3R1ZmYgb24gYSBuZXcgbGV2ZWwgb2YgbWFjcm9TdGFjayAqLwoJCW1hY3JvU3RhY2tbaU5BTUVTXS5wdXNoKG5ldyBBcnJheSgpKTsKCQltYWNyb1N0YWNrW2lERUZuU10ucHVzaChuZXcgQXJyYXkoKSk7CgoJCS8qIE9mIGNvdXJzZSBub3cgdGhlIGhlaWdodCBpbmNyZWFzZXMgKi8KCQloZWlnaHQrKzsKCX0sCgoJLyogcG9wTWFjcm9zOiBSZXN0b3JlIHRoZSBlbnZpcm9ubWVudCBiZWZvcmUgdGhlIHByZXZpb3VzIHB1c2ggKi8KCXBvcE1hY3JvczogZnVuY3Rpb24oKXsKCQkvKiBXZSBkb24ndCB3YW50IHRvIHRvdWNoIGFueSBzYXZlZCBnbG9iYWwgbWFjcm9zIC0gaWYgd2UncmUgc2FmZSwgY29weSBiYWNrIHRoZSBvbGQgZW52aXJvbm1lbnQgKi8KCQlpZigoR0xPQkFMU1RPUkU9PW51bGwpIHx8IChoZWlnaHQgPiAwKSkKCQl7CgkJCXdoaWxlKG1hY3JvU3RhY2tbaU5BTUVTXVtoZWlnaHRdLmxlbmd0aCA+MCkKCQkJewoJCQkJVEVYREVGLm1hY3Jvc1ttYWNyb1N0YWNrW2lOQU1FU11baGVpZ2h0XS5wb3AoKV0gPSBldmFsKHVuZXZhbChtYWNyb1N0YWNrW2lERUZuU11baGVpZ2h0XS5wb3AoKSkpOwoJCQl9CgoJCQkvKiBOb3cgd2UgZGVjcmVhc2UgaGVpZ2h0IHRvIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZSAqLwoJCQlpZigoR0xPQkFMU1RPUkU9PW51bGwpICYmIChoZWlnaHQgPiAwKSkge2hlaWdodCA9IGhlaWdodCAtIDE7fQoJCQllbHNlIGlmKChHTE9CQUxTVE9SRSE9bnVsbCkgJiYgKGhlaWdodCA+IDEpKSB7aGVpZ2h0ID0gaGVpZ2h0IC0gMTt9CgkJfQoJfSwKCgkvKiBwb3BBbGwgcG9wcyBldmVyeXRoaW5nIG9uIHRoZSBzdGFjaywgYW5kIGxlYXZlcyB5b3Ugd2l0aCB0aGUgYmFzZSBnbG9iYWwgZW52aXJvbm1lbnQgKi8KCXBvcEFsbDogZnVuY3Rpb24oKXsKCQkvKiBGaXJzdCBsZXRzIHBvcCBkb3duIHRvIGxldmVsIDEuIE5vdGUgdGhhdCBwb3BNYWNyb3MoKSBtYW5hZ2VzIHRoZSBoZWlnaHQgZm9yIHVzLiAqLwoJCXdoaWxlKGhlaWdodCA+IDEpewoJCQl0aGlzLnBvcE1hY3JvcygpOwoJCX0KCgkJLyogV2UgZG8gb25lIGZ1cnRoZXIgcG9wIHRvIGdldCBiYWNrIHRvIGdsb2JhbHMgLSBub3RlIGlmIHdlIGluY2x1ZGVkIHRoaXMgaW4gdGhlIGxvb3AJKgoJCSAqIHdpdGggZ2xvYmFscyBzYXZlZCB0aGVuIGhlaWdodCB3b3VsZCBzdGF5IGF0IHRoZSB2YWx1ZSAxIGFuZCB3ZSdkIGdldCBhbiBpbmZpbml0ZQkqCgkJICogbG9vcC4gcG9wTWFjcm9zKCkgaGFuZGxlcyBhbGwgdGhlIHNwZWNpYWwgY2FzZXMgZm9yIHVzLgkJCQkqLwoJCXRoaXMucG9wTWFjcm9zKCk7Cgl9LAoKCS8qIEltcGxlbWVudCBcbGV0IGNvbW1hbmQgKi8KCUxldDogZnVuY3Rpb24gKG5hbWUpIHsKCgkJLyoKCQkqIFdlIHVzZSBHZXRDU25hbWUgcmF0aGVyIHRoYW4gR2V0QXJndW1lbnQgYmVjYXVzZQoJCSogd2Ugd2FudCB0byB0aHJvdyBhbiBlcnJvciBpZiBhbiBhcmd1bWVudCBpcwoJCSogZW5jbG9zZWQgaW4gYnJhY2VzLgoJCSovCgkJdmFyIHRhcmdldE5hbWUgPSB0aGlzLkdldENTbmFtZShuYW1lKTsKCgkJLyoKCQkqIFRoZSBmb2xsb3dpbmcgbGluZSBhbGxvd3MgZm9yIGFuIG9wdGlvbmFsICc9JwoJCSogc3ltYm9sIGJldHdlZW4gdGhlIHNvdXJjZSBhbmQgdGFyZ2V0IGNvbW1hbmQKCQkqIG5hbWVzLgoJCSovCgkJaWYgKHRoaXMuR2V0TmV4dCgpID09PSAnPScpIHt0aGlzLmkrK307CgoJCXZhciBzb3VyY2VOYW1lID0gdGhpcy5HZXRDU25hbWUobmFtZSk7CgoJCWlmICghdGFyZ2V0TmFtZS5tYXRjaCgvXigufFthLXpdKykkL2kpKSB7VEVYLkVycm9yKCJJbGxlZ2FsIGNvbnRyb2wgc2VxdWVuY2UgbmFtZSBmb3IgIiArIG5hbWUpfTsKCQlpZiAoIXNvdXJjZU5hbWUubWF0Y2goL14oLnxbYS16XSspJC9pKSkge1RFWC5FcnJvcigiSWxsZWdhbCBjb250cm9sIHNlcXVlbmNlIG5hbWUgZm9yICIgKyBuYW1lKX07CgoKCQkvKiBUaGUgZm9sbG93aW5nIGl0ZXJhdGlvbiBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvbW1hbmQgXHRhcmdldE5hbWUgaXMgbWFkZSB0byBjb2luY2lkZSB3aXRoIFxzb3VyY2VOYW1lLCoKCQkgKiBjb3JyZXNwb25kaW5nIG9mIGNvdXJzZSB0byBcbGV0XHRhcmdldE5hbWVcc291cmNlTmFtZS4JCQkJCQkqLwoJCWZvciAodmFyIGNvbW1hbmRMaXN0IGluIGNvbW1hbmRMaXN0cykgewoKCQkvKgoJCSogTWFrZSBzdXJlIHRoYXQgZm9yIGVhY2ggZGljdGlvbmFyeSB0aGF0IHRoZQoJCSogZW50cnkgZm9yICdzb3VyY2VOYW1lJyBpcyBpZGVudGljYWwgdG8gdGhhdAoJCSogZm9yICd0YXJnZXROYW1lJy4KCQkqLwoJCQlpZiAoVEVYREVGW2NvbW1hbmRMaXN0XVtzb3VyY2VOYW1lXSkgewoJCQkJVEVYREVGW2NvbW1hbmRMaXN0XVt0YXJnZXROYW1lXSA9IFRFWERFRltjb21tYW5kTGlzdF1bc291cmNlTmFtZV07CS8qIE5vdGUsIHRoaXMgaXMgYSByZWZlcmVuY2UgKi8KCQkJfQoJCQllbHNlIGlmIChURVhERUZbY29tbWFuZExpc3RdW3RhcmdldE5hbWVdKSB7CgkJCQlkZWxldGUgVEVYREVGW2NvbW1hbmRMaXN0XVt0YXJnZXROYW1lXQkvKiBpLmUuIGlmIG91ciBmaXJzdCBhcmd1bWVudCB3YXMgbm90aGluZywgcmVtb3ZlIGl0ICovCgkJCX0KCQl9OwogICAgICAgIH0KCgogICAgfSk7CgogIE1hdGhKYXguSHViLlN0YXJ0dXAuc2lnbmFsLlBvc3QoIlRlWCBsb2NhbCBSZWFkeSIpOwoKfSk7CgovKgogKiBBIGZpeCB0aGFua3MgdG8gYW4gZS1tYWlsIGZyb20gRGF2aWRlLgogKgogKiBUaGUgb2xkIGxpbmU6CiAqIE1hdGhKYXguQWpheC5sb2FkQ29tcGxldGUoIkxvY2FsIEV4dGVuc2lvbiIpOwogKgogKiBPbmUgZG9lc24ndCBmZWVkICdsb2FkQ29tcGxldGUnIHNvbWUgYXJiaXRyYXJ5IGZsYWcgbGlrZSB0aGlzLgogKiBJbnN0ZWFkIHlvdSBtdXN0IHBhc3MgYmFjayB0aGUgZmlsZW5hbWUuCiAqLwpNYXRoSmF4LkFqYXgubG9hZENvbXBsZXRlKCJodHRwOi8vb3hrdW5lbmdyb3VwLnRpZGRseXNwYWNlLmNvbS9sb2NhbFRlWC5qcyIpOwo=
[[Singularities|Theory of singularities using generalized limits]] [[Cartesian closedness|Cartesian closedness]]
We start with some "space" $\nu$ (on a set $\operatorname{Ob}\nu$) (for example it may be set $\mathbb{R}$ of real numbers or an Euclidean space). The zeroth singularity level $\nu_0=\nu$.

Then we need to define "singularity level above" (SLA for short) and assign $\nu_{i+1}=SLA(\nu_i)$ (also on the set $\operatorname{Ob}\nu$). Thus we get an infinite chain of singularity levels.

$\nu_{i+1}$ should include [[generalized limit]] of functions with values in $\nu_i$. So limits on $\nu_i$ are (generally) singularities of $\nu_{i+1}$.

Also we define function (it should be an injection) $\tau:\nu_i\rightarrow\nu_{i+1}$ (raising singularity level). I denote its partial inverse (existing because it is an injection) as $r$. Given a point $x$ of $\nu_k$, we apply $r$ to it as many times as possible: $y=r(r(r\dots r(x)))$. $y$ may be of the same singularity level as $x$ or any lower singularity including possibly the non-singular value (of $\operatorname{Ob}\nu_0$).

I call the set of all values $y$ obtained as explained in the previous paragraph "metasingular numbers" (MSN).

Note that the function $\tau$ defined in [[my book|http://www.mathematics21.org/algebraic-general-topology.html]] is injection when the spaces in consideration are $T_2$. So we probably need to require $T_2$-separability throughout this research.

Throughout this research we will fix (in the argument space $\mu$) a filter $\Delta$ (on which the limits are taken). One way to obtain $\Delta$ is to fix some "space" $\mu$ (the space of arguments as opposed to $\nu$, space of values) and define $\Delta=\langle\mu\rangle^{\ast}\{x\}$ for some argument point $x$.
We try to define the function $\operatorname{SLA}:\nu_i\rightarrow\nu_{i+1}$ (raising singularity level) in some different ways.

In every way if possible we should put some restriction what $\nu_i$ is. For example we may require that it is a funcoid, or maybe some more general thing.

We may put additional restrictions such as $\nu_i$ to be $T_2$-separable or a transitive funcoid or whatever.
Let $f$ is an $n$-ary ($n$ is an arbitrary possibly infinite index set) function on $\operatorname{Ob} \nu$. Then define function $f'$ on $\operatorname{SLA} (
\operatorname{Ob} \nu)$ as: \[ f' ( b) = \left\{ g \circ \prod^{( A)} b \hspace{1em} | \hspace{1em} g \in f' \right\} . \]

The above induces a trivial definition of functions on MSN but only for functions of finite arity (because having a finite set of MSN we can raise them to the same (maximum) level).
This way if we succeed is the best way to create metasingular numbers because, it (if we succeed) involves just funcoids not some fancy generalization of funcoids.

Approximate definition of "singularity level": //Singularity level// is a transitive, $T_2$-separable endofuncoid.

Now define the funcoid $\nu_{i+1}=\operatorname{SLA}(\nu_i)$:

$\operatorname{Ob}(\nu_{i+1})$ is defined as the set of all generalized limits (having fixed $\mu$, $\nu$, and $G$).

$X \mathrel{[ \nu_{i+1}]^{\ast}} Y \Leftrightarrow \exists z \in \bigcup \operatorname{Ob} \nu \forall K \in \operatorname{up} z \exists x \in \bigcup X, y \in \bigcup Y : x, y\sqsubseteq K$.

The trouble is to prove that the funcoid $\nu_{i+1}$ exists (is really a funcoid).

$\neg(X \mathrel{[ \nu_{i+1}]^{\ast}} \emptyset)$ and $\neg(\emptyset \mathrel{[ \nu_{i+1}]^{\ast}} Y)$ are obvious. We need to prove
$$I\cup J \mathrel{[ \nu_{i+1}]^{\ast}} Y \Leftrightarrow I \mathrel{[ \nu_{i+1}]^{\ast}} Y \vee J \mathrel{[ \nu_{i+1}]^{\ast}} Y$$ and
$$X \mathrel{[ \nu_{i+1}]^{\ast}} I\cup J \Leftrightarrow X \mathrel{[ \nu_{i+1}]^{\ast}} I \vee X \mathrel{[ \nu_{i+1}]^{\ast}} J.$$

Let's attempt to prove the first of the above equations (the second is dual).

$I \cup J \mathrel{[ \operatorname{SLA} ( \nu)]^{\ast}} Y \Leftrightarrow \\ \exists z
\in \bigcup \operatorname{Ob} \nu \forall K \in \operatorname{up} z \exists x \in \bigcup I \cup \bigcup J, y \in \bigcup Y :
x, y \sqsubseteq K \Leftrightarrow \\

\exists z \in \bigcup \operatorname{Ob} \nu \forall K \in \operatorname{up} z : ( \exists x \in \bigcup I \cup
\bigcup J : x \sqsubseteq K \wedge \exists y \in \bigcup Y : y \sqsubseteq K) \Leftrightarrow \\

\exists z \in \bigcup \operatorname{Ob} \nu \forall K \in \operatorname{up} z \exists x \in \bigcup I \cup \bigcup J :
x \sqsubseteq K \wedge \\ \exists z \in \bigcup \operatorname{Ob} \nu \forall K \in \operatorname{up} z
\exists y \in \bigcup Y : y \sqsubseteq K \Leftrightarrow \\

?? \\

\exists z \in \bigcup \operatorname{Ob} \nu : ( \forall K \in \operatorname{up} z \exists x \in \bigcup I : x
\sqsubseteq K \vee \\ \forall K \in \operatorname{up} z \exists x \in \bigcup J : x \sqsubseteq
K) \wedge \exists z \in \bigcup \operatorname{Ob} \nu \forall K \in \operatorname{up} z \exists y \in
\bigcup Y : y \sqsubseteq K \Leftrightarrow \\

( \exists z \in \bigcup \operatorname{Ob} \nu \forall K \in \operatorname{up} z \exists x \in \bigcup I : x
\sqsubseteq K \vee \\ \exists z \in \bigcup \operatorname{Ob} \nu \forall K \in \operatorname{up} z
\exists x \in \bigcup J : x \sqsubseteq K) \wedge \exists z \in \bigcup \operatorname{Ob} \nu \forall
K \in \operatorname{up} z \exists y \in \bigcup Y : y \sqsubseteq K \Leftrightarrow \\

( \exists z \in \bigcup \operatorname{Ob} \nu \forall K \in \operatorname{up} z \exists x \in \bigcup I : x
\sqsubseteq K \wedge \exists z \in \bigcup \operatorname{Ob} \nu \forall K \in \operatorname{up} z
\exists y \in \bigcup Y : y \sqsubseteq K) \vee \\ ( \exists z \in \bigcup \operatorname{Ob} \nu \forall
K \in \operatorname{up} z \exists x \in \bigcup J : x \sqsubseteq K \wedge \exists z \in
\bigcup \operatorname{Ob} \nu \forall K \in \operatorname{up} z \exists y \in \bigcup Y : y \sqsubseteq K)
\Leftrightarrow \\

( \exists z \in \bigcup \operatorname{Ob} \nu : ( \forall K \in \operatorname{up} z \exists x \in \bigcup I :
x \sqsubseteq K \wedge \forall K \in \operatorname{up} z \exists y \in \bigcup Y : y
\sqsubseteq K)) \vee \\ ( \exists z \in \bigcup \operatorname{Ob} \nu : ( \forall K \in \operatorname{up}
z \exists x \in \bigcup J : x \sqsubseteq K \wedge \forall K \in \operatorname{up} z \exists y
\in \bigcup Y : y \sqsubseteq K)) \Leftrightarrow \\

( \exists z \in \bigcup \operatorname{Ob} \nu : ( \forall K \in \operatorname{up} z : ( \exists x \in
\bigcup I : x \sqsubseteq K \wedge \exists y \in \bigcup Y : y \sqsubseteq K))) \vee \\ \exists z
\in \bigcup \operatorname{Ob} \nu \forall K \in \operatorname{up} z : ( \exists x \in \bigcup J : x
\sqsubseteq K \wedge \exists y \in \bigcup Y : y \sqsubseteq K) \Leftrightarrow \\

I \mathrel{[ \operatorname{SLA} ( \nu)]^{\ast}} Y \vee J \mathrel{[ \operatorname{SLA} (
\nu)]^{\ast}} Y$.

To finish the proof we need to fulfill ?? in the above formula. For this it's enough to prove

$\forall K \in \operatorname{up} z \exists x \in \bigcup I\cup \bigcup J : x \sqsubseteq K \Rightarrow \\ \forall K \in \operatorname{up}
z \exists x \in \bigcup I : x \sqsubseteq K \vee \forall K \in \operatorname{up} z \exists x
\in \bigcup J : x \sqsubseteq K$.

If $z=\uparrow Z$ is a principal funcoid, then

$\forall K \in \operatorname{up} z \exists x \in \bigcup I\cup \bigcup J : x \sqsubseteq K \Rightarrow \\ 
\exists x \in \bigcup I\cup \bigcup J : x \sqsubseteq z \Rightarrow \\
\exists x \in \bigcup I : x \sqsubseteq z \vee \exists x \in \bigcup J : x \sqsubseteq z \Rightarrow \\
\forall K \in \operatorname{up}
z \exists x \in \bigcup I : x \sqsubseteq K \vee \forall K \in \operatorname{up} z \exists x
\in \bigcup J : x \sqsubseteq K$.

Following the idea of [[the proof in this math.stackexchange.com question|http://math.stackexchange.com/questions/562908/an-implication-involving-filters#562974]] it is easy to show that our implication is true if $\operatorname{up} z$ is closed regarding finite meets. See [[this page|Singularities funcoids: some special cases]] for attempts to set it true.
The question is whether our statement holds for non-principal funcoids. Or is there a counterexampe?
If we fail to define singularities levels above to be funcoids, we need to generalize and use pointfree funcoids instead of funcoids, or even more generally below defined galufuncoids.

Let $\mathfrak{A}$ and $\mathfrak{B}$ are $\mathbf{Rel}$-morphisms. I will denote like $( \sim_{\mathfrak{A}}) = \operatorname{GR} \mathfrak{A}$ and $(\sim_{\mathfrak{B}}) = \operatorname{GR} \mathfrak{B}$.

''Definition'' //Galufuncoids// between $\mathfrak{A}$ and $\mathfrak{B}$ is a quadruple $( \mathfrak{A}; \mathfrak{B}; \alpha ; \beta)$ such that \[ \forall x \in \operatorname{Ob} \mathfrak{A}, y \in \operatorname{Ob} \mathfrak{B}: ( \alpha x \sim_{\mathfrak{B}} y \Leftrightarrow x \sim_{\mathfrak{A}} \beta y) . \]

''Definition'' $x \mathrel{[ f]} y \Leftrightarrow x \sim_{\operatorname{Src} f} \beta y$.

''Obvious'' $x \mathrel{[ f]} y \Leftrightarrow x \sim_{\operatorname{Src} f} \beta y \Leftrightarrow \alpha x \sim_{\operatorname{Dst} f} y$.

Galufuncoids are a generalization of both (pointfree) funcoids and Galois connections.

''Definition'' The //reverse// galufuncoid is defined by the formula: \[ ( \mathfrak{A}; \mathfrak{B}; \alpha ; \beta)^{- 1} = ( \mathfrak{B}; \mathfrak{A}; \beta ; \alpha) . \]

''Proposition'' Composition of (composable) galufuncoids is a galufuncoid.

''Proof'' $( \alpha_2 \circ \alpha_1) x \sim y \Leftrightarrow \alpha_2 \alpha_1 x \sim
y \Leftrightarrow \alpha_1 x \sim \beta_2 y \Leftrightarrow x \sim \beta_1
\beta_2 y \Leftrightarrow x \sim ( \beta_1 \circ \beta_2) y$.

''Obvious'' Galufuncoids form a category (similarly to the category of pointfree funcoids).

We can define order of galufuncoids by the formula
$$f \sqsubseteq g \Leftrightarrow \forall x \in \mathfrak{A}: \langle f \rangle x \sqsubseteq \langle g \rangle x \wedge \forall y \in \mathfrak{B}: \langle f^{- 1} \rangle y \sqsubseteq \langle g^{- 1} \rangle y.$$
''Variant 1''

//Functional galufuncoid// (a candidate for singularity level above) $\nu / \Delta$ of $\nu$ through filter $\Delta$ is the endo-galufuncoid defined by the formulas:

$\operatorname{Ob} ( \nu / \Delta) = \mathsf{FCD} ( \operatorname{Base} ( \Delta) ; \operatorname{Ob} \nu)$;

$\langle \nu / \Delta \rangle f = \nu \circ f$ and $\langle ( \nu / \Delta)^{-1} \rangle f = \nu^{- 1} \circ f$;

$f \sim_{\operatorname{Ob} ( \nu / \Delta)} g \Leftrightarrow g^{- 1} \circ f
\sqsupseteq \operatorname{id}^{\mathsf{FCD}}_{\Delta}$;

''Variant 2''

It seems that the above does not define a $T_2$ space. In attempt to make it $T_2$-separable, let restrict $\operatorname{Ob} ( \nu / \Delta)$ only to funcoids $f=\nu\circ F$ where $F$ is an entirely defined monovalued funcoid.

''Obvious'' $\sim_{\operatorname{Ob} ( \nu / \Delta)}$ is a symmetric relation.

''Proposition'' This is really a galufuncoid and $f \mathrel{[ \nu / \Delta]} g
\Leftrightarrow g^{- 1} \circ \nu \circ f \sqsupseteq \operatorname{id}_{\Delta}$.

''Proof'' We need to prove
\[ \langle \nu / \Delta \rangle f \sim_{\operatorname{Ob} ( \nu / \Delta)} g
   \Leftrightarrow g^{- 1} \circ \nu \circ f \sqsupseteq \operatorname{id}_{\Delta}
   \Leftrightarrow f \sim_{\operatorname{Ob} ( \nu / \Delta)} \langle ( \nu /
   \Delta)^{- 1} \rangle g. \]
Really,

$\langle \nu / \Delta \rangle f \sim_{\operatorname{Ob} ( \nu / \Delta)} g
\Leftrightarrow \nu \circ f \sim_{\operatorname{Ob} ( \nu / \Delta)} g \Leftrightarrow
g^{- 1} \circ \nu \circ f \sqsupseteq \operatorname{id}_{\Delta}$

$f \sim_{\operatorname{Ob} ( \nu / \Delta)} \langle ( \nu / \Delta)^{- 1} \rangle g
\Leftrightarrow f \sim_{\operatorname{Ob} ( \nu / \Delta)} \nu^{- 1} \circ g
\Leftrightarrow g^{- 1} \circ \nu \circ f \sqsupseteq \operatorname{id}_{\Delta}$.

''Remark'' A way to come to the above formula
\[ \forall x \in \operatorname{atoms} \Delta : f x \mathrel{[ \nu]} g x
   \Leftrightarrow \forall x \in \operatorname{atoms} \Delta : x \mathrel{[ g^{- 1}
   \circ \nu \circ f]} x \Leftrightarrow g^{- 1} \circ \nu \circ f \sqsupseteq
   \operatorname{id}_{\Delta} . \]
Replacing limit in the definition of derivative with the above defined reduced limit, the base set $\operatorname{Ob} \mu$ with MSN and operations $f$ on the set $\operatorname{Ob} \mu$ with corresponding operations on MSN, we get a new interpretation of a differential equation (DE) (ordinary or partial).

Let call such (enhanced) differential equations //meta-singular equations// (as opposed to //non-singular equations// that is customary differential equations).

There arise the following questions:

''Definition'' I call a solution of a DE a //trivial restriction// if it is a restriction (to the set of non-singular points) of exactly one enhanced DE.

We need to find when there are solutions which are not trivial restrictions.

Then we can split such non-trivial solutions into following classes:
* "added solutions" are solutions whose restriction to non-singularity points is not a non-singular solution;
* "alternate solutions" is when an non-singular solution is a restriction of more than one meta-singular solution;
* "disappearing solutions" when a non-singular solution is not a restriction of a meta-singular solution.

See http://math.stackexchange.com/questions/566018/solution-of-a-differential-equation-having-a-singularity-not-everywhere-defined  for a toy differential equation with a singularity.
[[I|Victor Porton]] am not a expert in general relativity (I am not even a professional mathematician).

But it looks like that the equations of general relativity can be converted (as described above) into meta-singular equations. For the special case of general relativity equations, the above classes are:
* "added solutions" would possibly characterize a "world above" described not with real numbers as our world but with singularities. This may or may not be of physical interest.
* "alternate solutions" would characterize black (or white) holes with additional information hidden inside. This additional information may probably solve the well known paradox of information disappearing when it falls into a black hole.
* "disappearing solutions" would mean that the laws of nature are possibly more restrictive than considered in more traditional physics. Could it resolve time-machine related paradoxes?

I again repeat that I am not an expert in general relativity. I seek collaboration with general relativity experts to solve the problems I've formulated.

I think (except of the case of the negative result that is there are no non-trivial solutions) this research is destined to receive Nobel Prize and/or Fundamental Physics Prize. I want my half.

Note that the group $G$ (see the definition of generalized limit in my book) for general relativity can be defined in two different ways: as the group of homeomorpisms of the curved space or as the group of only uniformly continuous (in both directions) bijections. This gives us ''two'' new theories of general relativity.
The below is some non-systematized materials. Please help to systematize it and move to other pages where it would be more appropriate.

Consider two endo-galufuncoids $\mu$ and $\nu$. Values on $\operatorname{Ob} \mu$ will behave like arguments of functions, of $\operatorname{Ob} \nu$ like values of functions.

I call $\operatorname{SLA} ( \operatorname{Ob} \mu)$ //singularity level above// $\operatorname{Ob} \mu$ the set of sets of funcoids $\nu \circ f|_{\langle \mu \rangle^{\ast} \{ x \}}$ (or alternatively of limits $\operatorname{xlim} f|_{\langle \mu \rangle^{\ast} \{ x \}}$) where $f$ is a monovalued principal funcoid in $\mathsf{FCD} ( \operatorname{Ob} \mu ; \operatorname{Ob} \nu)$. (Maybe exclude the zero funcoid?)

Consider a galufuncoid $\omega$ defined by the formulas:

$\langle \omega \rangle f = \nu \circ f$ and $\langle \omega^{- 1} \rangle f =
f \circ \nu$ and $f \mathrel{[ \omega]} g \Leftrightarrow \exists x \in
\operatorname{Ob} \nu : g^{- 1} \circ f \sqsupseteq
\operatorname{id}^{\mathsf{FCD}}_{\langle \mu \rangle^{\ast} \{ x \}}$.

We need to prove

$\langle \omega \rangle x \sim_{\omega} g^{- 1} \Leftrightarrow \exists x \in
\operatorname{Ob} \nu : g^{- 1} \circ ( \sim_{\nu}) \circ f \sqsupseteq
\operatorname{id}_{\langle \mu \rangle^{\ast} \{ x \}}$

and ?? (TODO)

The first is equivalent to $( \sim_{\nu}) \circ f \sim_{\omega} g^{- 1}
\Leftrightarrow \exists x \in \operatorname{Ob} \nu : g^{- 1} \circ ( \sim_{\nu})
\circ f \sqsupseteq \operatorname{id}^{\mathsf{FCD}}_{\langle \mu
\rangle^{\ast} \{ x \}}$.

Really, $( \sim_{\nu}) \circ f \sim_{\omega} g^{- 1} \Leftrightarrow \exists x
\in \operatorname{Ob} \nu : g^{- 1} \circ ( \sim_{\nu}) \circ f \sqsupseteq
\operatorname{id}_{\langle \mu \rangle^{\ast} \{ x \}}$.

''Conjecture'' $f \mathrel{[ \nu / \langle \mu \rangle^{\ast} \{ x \}]} g \Leftrightarrow \nu
\circ f|_{\langle \mu \rangle^{\ast} \{ x \}} = \nu \circ g|_{\langle \mu
\rangle^{\ast} \{ x \}}$ for $f,g\in\nu_{i+1}$, $x\in\operatorname{Ob}\mu$
We attempt to prove that $\operatorname{GR} z$ is closed regarding finite intersections.

For consideration of this, let's consider two special cases (first of which is a specialization of the second).

Let $\mu=\nu$ be the natural proximity on real numbers $\mathbb{R}$.

Let $\Delta$ is the entourage filter of zero.

1. $z=\Delta\times^{\mathsf{FCD}}\Delta$.

2. $z=\nu\circ (\uparrow^{\mathsf{FCD}} f)|_{\Delta}$ for an arbitrary function $f:\mathbb{R}\rightarrow\mathbb{R}$.

(1) is [[also formulated in elementary terms|http://math.stackexchange.com/questions/568513/is-a-set-closed-under-finite-intersections-about-filters]] (without using funcoids).

These two above conjectures are shown to be false by a counter-example in [[this blog post|http://portonmath.wordpress.com/2013/12/18/a-negative-result-on-a-conjecture/]]. It is a discouraging result as it seems from it the plain funcoids can't be used for the multilevel theory of singularities.
If [[using plain funcoids|Using plain funcoids]] does not work in some reason, we may attempt to replace funcoids with some generalization of funcoids, such as pointfree funcoids, or more generaly [[galufuncoids|Galufuncoids]].

This approach would also require to redefine [[generalized limit]], because as it is now defined it is always a set of funcoids.
We can also try "cheap way": considering only plain numbers and singularities of the first level.

I mean the solutions of differential equations which are expressible as numbers and singularities of the first level.

(Formulate this exactly.)

This "cheap way" has the advantage that we can work with functions of infinite arity.

Added later: This cheap way seems to be not useful in practice. Consider $y'=f(y)$ differential equation: Then if its solution $y=g(t)$ has a singularity at point $t=a$ then the derivative at point $a$ would be $\lim_{x\rightarrow a}\frac{g(x)-g(a)}{x-a}$ to define which we would need a singularity of the second level, because $g(a)$ is itself a singularity (of the first level).
To prove that $\operatorname{GR} ( \Delta \times^{\mathsf{FCD}} \Delta)$ is closed under finite intersections, it's enough to prove that for every $f \in \operatorname{GR} ( \Delta \times^{\mathsf{FCD}} \Delta)$ there is a positive $\varepsilon$ such that $\forall x \in ( - \varepsilon ; \varepsilon) : f x \in \Delta$.

Really, under this assumption:

For $g \in \operatorname{GR} ( \Delta \times^{\mathsf{FCD}} \Delta)$ exists $\zeta > 0$ such that $\forall x \in ( - \zeta ; \zeta) : g x \in \Delta$. Let $\eta = \min \{ \varepsilon, \zeta \}$. So $\forall x \in ( - \eta ; \eta) : ( \langle f \rangle x \in \Delta \wedge \langle g \rangle x \in \Delta)$ and so $\forall x \in ( - \eta ; \eta) : \langle f \cap g \rangle x \in \Delta$ that is $\forall x \in ( - \eta ; \eta) : \langle \uparrow^{\mathsf{FCD}} ( f \cap g) \rangle^{\ast} \{ x \} \sqsupseteq \Delta$ and consequently $f \cap g \in \operatorname{GR} ( \Delta \times^{\mathsf{FCD}} \Delta)$.
See http://www.springer.com/us/book/9780387977102 for another way to prove Cartesian closedness.

This math research wiki is to solve the open problems:
* Is category $\mathbf{Fcd}$ cartesian closed?
* Is category $\mathbf{Rld}$ cartesian closed?

> [[Definition of our categories]]
> [[Description of cartesian closed categories]]
> [[Is category Fcd cartesian closed?]]
>> [[By analogy with the proof that Dig is cartesian closed]]
>>> [[Proof for Fcd using sets]]
>> [[Reducing to the fact that Dig is cartesian closed]]
> [[Is category Rld cartesian closed?]]

It also contains a complete proof that
[[Category Dig is cartesian closed]]

Before participating in this research you need to read:
* [[Algebraic General Topology. Volume 1|http://www.mathematics21.org/algebraic-general-topology.html]]
* [[Products in dagger categories with complete ordered Mor-sets|http://www.mathematics21.org/binaries/product.pdf]]

Please put your ideas and questions regarding this research topic and announces of any changes in this wiki as comments to [[this blog post|http://portonmath.wordpress.com/2013/11/25/cartesian-closed-wiki/]].
Categories $\mathbf{Dig}$, $\mathbf{Fcd}$, and $\mathbf{Rld}$ are respectively categories of:
# discretely continuous maps between digraphs;
# (proximally) continuous maps between endofuncoids;
# (uniformly) continuous maps between endoreloids.

''Definition'' //Digraph// is an endomorphism of the category $\mathbf{Rel}$.

For a digraph $A$ we denote $\operatorname{Ob} A$ the set of vertexes or $A$ and $\operatorname{GR} A$ the set of edges or $A$.

''Definition'' Category $\mathbf{Dig}$ of digraphs is the category whose objects are digraphs and morphisms are discretely continuous maps between digraphs. That is morphisms from a digraph $\mu$ to a digraph $\nu$ are functions (or more precisely morphisms of $\mathbf{Set}$) $f$ such that $f \circ \mu \sqsubseteq \nu \circ f$ (or equivalently $\mu \sqsubseteq f^{- 1} \circ \nu \circ f$ or equivalently $f \circ \mu \circ f^{- 1} \sqsubseteq \nu$).

''Remark'' Category of digraphs is sometimes defined in an other (non equivalent) way, allowing multiple edges between two given vertices.

''Definition'' Category $\mathbf{Fcd}$ of continuous maps between endofuncoids is the category whose objects are endofuncoids and morphisms are proximally continuous maps between endofuncoids. That is morphisms from an endofuncoid $\mu$ to an endofuncoid $\nu$ are functions (or more precisely morphisms of $\mathbf{Set}$) $f$ such that $\uparrow^{\mathsf{FCD}} f \circ \mu \sqsubseteq \nu \circ \uparrow^{\mathsf{FCD}} f$ (or equivalently $\mu \sqsubseteq \uparrow^{\mathsf{FCD}} f^{- 1} \circ \nu \circ \uparrow^{\mathsf{FCD}} f$ or equivalently $\uparrow^{\mathsf{FCD}} f \circ \mu \circ \uparrow^{\mathsf{FCD}} f^{- 1} \sqsubseteq \nu$).

''Definition'' Category $\mathbf{Rld}$ of continuous maps between endoreloids is the category whose objects are endoreloids and morphisms are uniformly continuous maps between endoreloids. That is morphisms from an endoreloid $\mu$ to an endoreloid $\nu$ are functions (or more precisely morphisms of $\mathbf{Set}$) $f$ such that $\uparrow^{\mathsf{RLD}} f \circ \mu \sqsubseteq \nu \circ \uparrow^{\mathsf{RLD}} f$ (or equivalently $\mu \sqsubseteq \uparrow^{\mathsf{RLD}} f^{- 1} \circ \nu \circ \uparrow^{\mathsf{RLD}} f$ or equivalently $\uparrow^{\mathsf{RLD}} f \circ \mu \circ \uparrow^{\mathsf{RLD}} f^{- 1} \sqsubseteq \nu$).
We are not only to prove (or maybe disprove) that our categories are cartesian closed, but also to find (if any) explicit formulas for exponential transpose and evaluation.

''Definition'' A category is //cartesian closed// iff:
# It has finite products.
# For each objects $A$, $B$ is given an object $\operatorname{MOR} ( A ; B)$ (//exponentiation//) and a morphism $\varepsilon^{\mathbf{Dig}}_{A, B} : \operatorname{MOR} ( A ; B) \times A \rightarrow B$.
# For each morphism $f : Z \times A \rightarrow B$ there is given a morphism (//exponential transpose//) $\sim f : Z \rightarrow \operatorname{MOR} ( A ; B)$.
# $\varepsilon_{B,C} \circ ( \sim f \times 1_A) = f$ for $f : A \rightarrow B \times C$.
# $\sim ( \varepsilon_{B,C} \circ ( g \times 1_A)) = g$ for $g : A \rightarrow \operatorname{MOR} ( B ; C)$.

We will also denote $f\mapsto (-f)$ the reverse of the bijection $f\mapsto (\sim f)$.

Our purpose is to prove (or disprove) that categories $\mathbf{Dig}$, $\mathbf{Fcd}$, and $\mathbf{Rld}$ are cartesian closed. Note that they have finite (and even infinite) products is already proved in http://www.mathematics21.org/binaries/product.pdf

Alternative way to prove:
you can prove that the functor $-\times B$ is left adjoint to the exponentiation $-^B$ where the counit is given by the evaluation map.
Category of digraphs is the simplest of our three categories and it is easy to demonstrate that it is cartesian closed. I demonstrate cartesian closedness of $\mathbf{Dig}$ mainly with the purpose to show a pattern similarly to which we may probably demonstrate our two other categories are cartesian closed.

Let $G$ and $H$ be graphs:
* $\operatorname{Ob} \operatorname{MOR} ( G ; H) = ( \operatorname{Ob} H)^{\operatorname{Ob} G}$;
* $( f ; g) \in \operatorname{GR} \operatorname{MOR} ( G ; H) \Leftrightarrow \forall ( v ; w) \in \operatorname{GR} G : ( f ( v) ; g ( w)) \in \operatorname{GR} H$ for every $f, g \in \operatorname{Ob} \operatorname{MOR} ( G ; H) = ( \operatorname{Ob} H)^{\operatorname{Ob} G}$;

$\operatorname{GR} 1_{\operatorname{MOR} ( B ; C)} = \operatorname{id}_{\operatorname{Ob} \operatorname{MOR} ( B ; C)} = \operatorname{id}_{( \operatorname{Ob} H)^{\operatorname{Ob} G}}$

Equivalently

$( f ; g) \in \operatorname{GR} \operatorname{MOR} ( G ; H) \Leftrightarrow \forall ( v ; w) \in \operatorname{GR} G : g \circ \{ ( v ; w) \} \circ f^{- 1} \subseteq \operatorname{GR} H$

$( f ; g) \in \operatorname{GR} \operatorname{MOR} ( G ; H) \Leftrightarrow g \circ ( \operatorname{GR} G) \circ f^{- 1} \subseteq \operatorname{GR} H$

$( f ; g) \in \operatorname{GR} \operatorname{MOR} ( G ; H) \Leftrightarrow \langle f \times^{( C)} g \rangle \operatorname{GR} G \subseteq \operatorname{GR} H$

The transposition (the isomorphism) is uncurrying.

$\sim f = \lambda a \in Z \lambda y \in A : f ( a ; y)$ that is $( \sim f) ( a) ( y) = f ( a ; y)$.

$( - f) ( a ; y) = f ( a) ( y)$

If $f : A \times B \rightarrow C$ then $\sim f : A \rightarrow \operatorname{MOR} ( B ; C)$

''Proposition'' Transposition and its inverse are morphisms of $\mathbf{Dig}$.

''Proof'' It follows from the equivalence $\sim f : A \rightarrow \operatorname{MOR} ( B ; C) \Leftrightarrow \forall x, y : ( x A y \Rightarrow ( \sim f) x ( \operatorname{MOR} ( B ; C))  ( \sim f) y) \Leftrightarrow \\ \forall x, y : ( x A y \Rightarrow \forall ( v ; w) \in B : ( ( \sim f) x v ; ( \sim f) y w) \in C) \Leftrightarrow \\ \forall x, y, v, w : ( x A y \wedge v B w \Rightarrow ( ( \sim f) x v ; ( \sim f) y w) \in C) \Leftrightarrow \\ \forall x, y, v, w : ( ( x ; v)  ( A \times B)  ( y ; w) \Rightarrow ( f ( x ; v) ; f ( y ; w)) \in C) \Leftrightarrow f : A \times B \rightarrow C$.

Evaluation $\varepsilon : \operatorname{MOR} ( G ; H) \times G \rightarrow H$ is defined by the formula:

Then evaluation is $\varepsilon_{B, C} = - ( 1_{\operatorname{MOR} ( B ; C)})$.

So $\varepsilon_{B, C} ( p ; q) = ( - ( 1_{\operatorname{MOR} ( B ; C)})) ( p ; q) = ( 1_{\operatorname{MOR} ( B ; C)}) ( p) ( q) = p ( q)$.

''Proposition'' Evaluation is a morphism of $\mathbf{Dig}$.

''Proof'' Because $\varepsilon_{B, C} ( p ; q) = - ( 1_{\operatorname{MOR} ( B ; C)})$.

It remains to prove:
* $\varepsilon_{B, C} \circ ( \sim f \times 1_{A}) = f$ for $f : A \rightarrow B \times C$;
* $\sim ( \varepsilon_{B, C} \circ ( g \times 1_{A})) = g$ for $g : A \rightarrow \operatorname{MOR} ( B ; C)$.

''Proof'' $\varepsilon_{B, C} ( \sim f \times 1_{A}) ( a ; p) = \varepsilon_{B, C} ( ( \sim f) a ; p) = ( \sim f) a p = f ( a ; p)$. So $\varepsilon_{B, C} \circ ( \sim f \times 1_{A}) = f$.

  $\sim ( \varepsilon_{B, C} \circ ( g \times 1_{A})) ( p) ( q) = ( \varepsilon_{B, C} \circ ( g \times 1_{A})) ( p ; q) = \varepsilon_{B, C} ( g \times 1_{A}) ( p ; q) = \varepsilon_{B, C} ( g p ; q) = g ( p) ( q)$. So $\sim ( \varepsilon_{B, C} \circ ( g \times 1_{A})) = g$.
We can attempt to set exponential, transposition, and evaluation in either of two ways (it is conjectured that these two ways are equivalent).

;The first way
:See below
;The second way
:See [[Reducing to the fact that Dig is cartesian closed]]
;The third way
:Reduce to [[cartesian closedness of Rld|Is category Rld cartesian closed?]] (however proving that $\mathbf{Rld}$ is cartesian closed is probably harder to prove than that $\mathbf{Fcd}$ is cartesian closed).

!!The first way
* Exponential object $\operatorname{MOR(A;B)}$ is:
** Object $\operatorname{Ob}\operatorname{MOR(A;B)} = (\operatorname{Ob} B)^{\operatorname{Ob} B}$;
** Graph is $\operatorname{GR} \operatorname{MOR} ( A ; B) = \uparrow^{\mathsf{FCD}} \left\{ ( f ; g) \,|\, f, g \in \operatorname{Mor}_{\mathbf{Set}} (\operatorname{Ob} A;\operatorname{Ob} B) \wedge \uparrow^{\mathsf{FCD}}g \circ A \circ \uparrow^{\mathsf{FCD}}f^{- 1} \sqsubseteq B \right\}$.
* Transposition is uncurrying.
* Evaluation is $\varepsilon_{A, B} x = \langle \operatorname{Pr}^{(A)}_0 x \rangle \operatorname{Pr}^{(A)}_1 x$.

There are basically two ways to prove that $\mathbf{Fcd}$ is cartesian closed:

> [[By analogy with the proof that Dig is cartesian closed]]
> [[Reducing to the fact that Dig is cartesian closed]]
The most obvious way for proof attempt that $\mathbf{Fcd}$ is cartesian closed is an analogy with [[the proof that Dig is cartesian closed|Category Dig is cartesian closed]].

Use the exponential object, transposition, and evaluation as defined in [[this page|Is category Fcd cartesian closed?]]

Consider the long formula at the bottom of [[this page|Category Dig is cartesian closed]]. The proof would arise if we replace $x$ and $y$ in this formula with filters and operations and relations on set element with operations and relations on filters.

This proof could be simplified in either of two ways:
* replace $x$ and $y$ with ultrafilters, see [[Proof for Fcd using ultrafilters]];
* replace $x$ and $y$ with sets (principal filter), see [[Proof for Fcd using sets]].

This is not quite easy however, because we need to calculate uncurrying for a entirely defined monovalued principal funcoid (what is essentially the same as a function of a $\mathbf{Set}$-morphisms) taking either ultrafilters or principal filters as arguments. Such (generalized) uncurrying is not quite easy.

To sum what we need to prove:
* Transposition is a morphism.
* Evaluation is a morphism.
* $\varepsilon_{B,C} \circ ( \sim f \times 1_A) = f$ for $f : A \rightarrow B \times C$.
* $\sim ( \varepsilon_{B,C} \circ ( g \times 1_A)) = g$ for $g : A \rightarrow \operatorname{MOR} ( B ; C)$.
It is probably a simpler way to prove that $\mathbf{Fcd}$ is cartesian closed by embedding it into $\mathbf{Dig}$ (which is [[already known to be cartesian closed|Category Dig is cartesian closed]]).

$\mathbf{Fcd}$ can be embedded into $\mathbf{Dig}$ by the formulas:
* $A \mapsto \langle A \rangle$;
* $f \mapsto \langle f \rangle$.

That this really maps a morphism of $\mathbf{Fcd}$ into a morphism of $\mathbf{Dig}$ follows from the fact that $\langle g\circ f\rangle = \langle g\rangle\circ\langle f\rangle$.

Obviously this embedding (denote it $T$) is an injective (both on objects and morphisms) functor.

We will define:
* $\varepsilon^{\mathbf{Fcd}}_{A, B} = T^{-1} \varepsilon^{\mathbf{Dig}}_{T A, T B}$;
* $\sim^{\mathbf{Fcd}} f = T^{-1} \sim^{\mathbf{Dig}} T f$.

Due to functoriality and injectivity of $T$ it is enough to prove that above defined $\varepsilon^{\mathbf{Fcd}}_{A, B}$ and $\sim^{\mathbf{Fcd}} f$ exist and are morphisms of $\mathbf{Fcd}$.

$\varepsilon^{\mathbf{Dig}}_{T A, T B} \ne T\varepsilon^{\mathbf{Fcd}}_{A, B}$ because $\varepsilon^{\mathbf{Dig}}_{T A, T B}$ accepts ordered pairs as the argument and $T \varepsilon^{\mathbf{Fcd}}_{A, B}$ accepts sets as the argument. So this is a dead end. Can the proof idea be salvaged?
We may attempt to prove that $\mathbf{Rld}$ is cartesian closed by embedding it into supposedly cartesian closed category $\mathbf{Fcd}$ by the function $\rho$:

$\langle \rho f \rangle x = f \circ x \quad \text{and} \quad \langle \rho f^{- 1} \rangle y = f^{- 1} \circ y$.

TODO: More to write on this topic.
Currying for sets is $\langle f \rangle ( X \times Y) = \bigcup \langle \langle \sim f \rangle X
\rangle Y$ (as it's easy to prove). This simple formula gives hope, but...

It does not work with sets because an analogy for sets of the last equality of the above mentioned long formula would be:

$\forall X, Y, V, W \in \mathscr{P} \operatorname{Ob} A : \left( X \times V \mathrel{[
A \times B]^{\ast}} Y \times W \Rightarrow \langle f \rangle ( X \times V)
\mathrel{[ C]^{\ast}} \langle f \rangle ( Y \times W) \right) \Rightarrow \\ f : A
\times B \rightarrow C$

but this implication seems false.