code: def demo(num=0, trace=None):
      """
      Run exists demos.
  
       - num = 1: propositional logic demo
       - num = 2: first order model demo (only if trace is set)
       - num = 3: first order sentences demo
       - num = 4: satisfaction of open formulas demo
       - any other value: run all the demos
  
      :param trace: trace = 1, or trace = 2 for more verbose tracing
      """
      demos = {1: propdemo, 2: folmodel, 3: foldemo, 4: satdemo}
  
      try:
          demos[num](trace=trace)
      except KeyError:
          for num in demos:
              demos[num](trace=trace)
  
imports: import inspect
  import re
  import sys
  import textwrap
  from pprint import pformat
  from nltk.decorators import decorator
  from nltk.sem.logic import AbstractVariableExpression, AllExpression, AndExpression, ApplicationExpression, EqualityExpression, ExistsExpression, Expression, IffExpression, ImpExpression, IndividualVariableExpression, IotaExpression, LambdaExpression, NegatedExpression, OrExpression, Variable, is_indvar
label_desc: Use image node_id 11 for calling a global function with example usage: demo(num, trace) without return types