examples: Update python api datatypes example. (#7692)
authorAina Niemetz <aina.niemetz@gmail.com>
Wed, 24 Nov 2021 22:17:43 +0000 (14:17 -0800)
committerGitHub <noreply@github.com>
Wed, 24 Nov 2021 22:17:43 +0000 (22:17 +0000)
The C++ datatypes example was extended in #7689. This updates the Python
API datatypes example accordingly.

examples/api/python/datatypes.py

index 5b897c1b2789da04a7c6a977dc5f164df9e1cbea..96116da08b3354002f273a88500309f723919d79 100644 (file)
@@ -61,6 +61,19 @@ def test(slv, consListSort):
             print(" + args:", j)
         print()
 
+    # You can also define a tester term for constructor 'cons': (_ is cons)
+    t_is_cons = slv.mkTerm(
+            kinds.ApplyTester, consList["cons"].getTesterTerm(), t)
+    print("t_is_cons is {}\n\n".format(t_is_cons))
+    slv.assertFormula(t_is_cons)
+    # Updating t at 'head' with value 1 is defined as follows:
+    t_updated = slv.mkTerm(kinds.ApplyUpdater,
+                           consList["cons"]["head"].getUpdaterTerm(),
+                           t,
+                           slv.mkInteger(1))
+    print("t_updated is {}\n\n".format(t_updated))
+    slv.assertFormula(slv.mkTerm(kinds.Distinct, t, t_updated))
+
     # You can also define parameterized datatypes.
     # This example builds a simple parameterized list of sort T, with one
     # constructor "cons".