Try Matching Logic Online

Jump to: navigation, search

(back to the Matching Logic page)

Enter your C program annotated with matching logic specifications or choose (and modify) one example from the menu. Click Verify to run MatchC. The tool answers whether the program satisfies the specification and outputs statistics about the time, number of rewrites and number of paths analyzed. If the verification fails, additional information about the configuration is generated at the bottom of the page. When verifying C programs with MatchC, keep the following in mind:

  • Matching logic builds upon an executable semantics of the language, which is used unchanged for verification ... [ more ]
  • All examples below are verified for full functional correctness, not only for memory safety or other weaker properties ... [ more ]
  • The C fragment supported by MatchC is an idealized fragment of the C standard ... [ more ]
  • HERE are MatchC's current mathematical theories (defined in Maude) ... [ more ]

HERE are more detailed instructions and additional links.

Choose an example:
  • 01 undefined
    • 1 division_by_zero
    • 2 uninitialized_variable
    • 3 unallocated_location
    • 4 uninitialized_memory
  • 02 simple
    • 1 average
    • 2 minimum
    • 3 maximum
    • 4 multiplication_by_addition
    • 5 sum_recursive
    • 6 sum_iterative
    • 7 comm_assoc
  • 03 list
    • 01 head
    • 02 tail
    • 03 add
    • 04 swap
    • 05 deallocate
    • 06 length_recursive
    • 07 length_iterative
    • 08 sum_recursive
    • 09 sum_iterative
    • 10 reverse
    • 11 append
    • 12 copy
    • 13 filter
  • 04 io
    • 1 read_write
    • 2 list_read
    • 3 list_write
    • 4 list_read_write
  • 05 tree
    • 01 height
    • 02 size
    • 03 find
    • 04 mirror
    • 05 inorder
    • 06 preorder
    • 07 postorder
    • 08 iterative_deallocate
    • 09 tree_to_list_recursive
    • 10 tree_to_list_iterative
  • 06 call_stack
    • 1 only_g_calls_f
    • 2 h_in_stack_when_f
    • 3 stack_inspection
  • 07 sorting
    • 1 insert
    • 2 insertion_sort
    • 3 bubble_sort
    • 4 quicksort
    • 5 merge_sort
  • 08 binary_search_tree
    • 1 find
    • 2 insert
    • 3 delete
  • 09 avl_tree
    • 1 find
    • 2 insert
    • 3 delete
  • 10 schorr_waite
    • 1 tree
    • 2 graph
 

Please press the Verify button once and wait; it may take a few seconds to run MatchC; the execution of MatchC using this web interface is limited to 2 minutes of CPU time and 500 MB of RAM.
All examples above except avl_tree/insert and avl_tree/delete should verify in less than 2 seconds. Please let us know at mailto:ml@cs.uiuc.edu if any of them gets stuck, telling us what browser and operating system you are using. We recommend you to install the version of MatchC available for download http://github.com/andreistefanescu/matching-logic/releases/tag/v1.1 if you have any problems using the web interface above.

Personal tools
Namespaces

Variants
Views
Actions
Navigation