Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
coq-stdpp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
David Swasey
coq-stdpp
Commits
963a070d
Commit
963a070d
authored
Apr 07, 2016
by
Robbert Krebbers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Function to break a string up into words.
parent
d566b5f1
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
1 deletion
+15
-1
theories/strings.v
theories/strings.v
+15
-1
No files found.
theories/strings.v
View file @
963a070d
...
...
@@ -25,6 +25,21 @@ Fixpoint string_rev_app (s1 s2 : string) : string :=
end
.
Definition
string_rev
(
s
:
string
)
:
string
:
=
string_rev_app
s
""
.
(* Break a string up into lists of words, delimited by white space *)
Fixpoint
words_go
(
cur
:
option
string
)
(
s
:
string
)
:
list
string
:
=
match
s
with
|
""
=>
option_list
(
string_rev
<$>
cur
)
|
String
" "
s
=>
option_list
(
string_rev
<$>
cur
)
++
words_go
None
s
|
String
a
s
=>
words_go
(
Some
(
default
(
String
a
""
)
cur
(
String
a
)))
s
end
.
Definition
words
:
string
→
list
string
:
=
words_go
None
.
Ltac
words
s
:
=
match
type
of
s
with
|
list
string
=>
s
|
string
=>
eval
vm_compute
in
(
words
s
)
end
.
(** * Encoding and decoding *)
(** In order to reuse or existing implementation of radix-2 search trees over
positive binary naturals [positive], we define an injection [string_to_pos]
...
...
@@ -71,4 +86,3 @@ Program Instance string_countable : Countable string := {|
encode
:
=
string_to_pos
;
decode
p
:
=
Some
(
string_of_pos
p
)
|}.
Solve
Obligations
with
naive_solver
eauto
using
string_of_to_pos
with
f_equal
.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment