'); $.ajax({ type: "POST", url: 'save-perma.php', data: "prog1=" + encodeURIComponent($('#prog1').val()), success: function(data) { $('#results').html(data); } }); } else { $('#results').html('Checking '); $.ajax({ type: "POST", url: 'submit.php', data: "prog1=" + encodeURIComponent($('#prog1').val()) + "&incremental=" + encodeURIComponent($('#incremental').is(":checked")) + "&model=" + encodeURIComponent($('#model').is(":checked")) + // "&mostGeneralConstraint=" + encodeURIComponent($('#mostGeneralConstraint').is(":checked")) + // "&printProof=" + encodeURIComponent($('#printProof').is(":checked")) + "&stringSolver=ostrich.OstrichStringTheory", success: function(data) { $('#results').html(data); } }); } } function startup() { $.ajax({ type: "POST", url: 'startup.php' }); }

OSTRICH Web Interface

OSTRICH is an SMT solver for string constraints.
Constraints for OSTRICH can be written using a superset of a subset of the new SMT-LIB string theory. For more details, see the OSTRICH github page.

Load a predefined example: ... or enter some formulas:

Send given input to OSTRICH
Save input on the server and make it available through a private link
 
Enable incremental SMT-LIB processing
 
Output models/ countermodels